svn commit: r209355 - user/jmallett/octeon/sys/contrib/octeon-sdk

Juli Mallett jmallett at FreeBSD.org
Sat Jun 19 21:10:13 UTC 2010


Author: jmallett
Date: Sat Jun 19 21:10:13 2010
New Revision: 209355
URL: http://svn.freebsd.org/changeset/base/209355

Log:
  o) Make compilable on FreeBSD.
  o) Add functions requested by hps@ to manage the toggle bit in the host driver.

Modified:
  user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-usb.c
  user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-usb.h

Modified: user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-usb.c
==============================================================================
--- user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-usb.c	Sat Jun 19 20:34:37 2010	(r209354)
+++ user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-usb.c	Sat Jun 19 21:10:13 2010	(r209355)
@@ -194,7 +194,7 @@ typedef struct
 /* This macro logs out when a function returns a value */
 #define CVMX_USB_RETURN(v)                                              \
     do {                                                                \
-        typeof(v) r = v;                                                \
+        __typeof(v) r = v;                                              \
         if (cvmx_unlikely(usb->init_flags & CVMX_USB_INITIALIZE_FLAGS_DEBUG_CALLS))    \
             cvmx_dprintf("%*s%s: returned %s(%d)\n", 2*--usb->indent, "", __FUNCTION__, #v, r); \
         return r;                                                       \
@@ -3648,3 +3648,20 @@ cvmx_usb_status_t cvmx_usb_device_disabl
     CVMX_USB_RETURN(CVMX_USB_SUCCESS);
 }
 
+extern void cvmx_usb_set_toggle(cvmx_usb_state_t *state, int endpoint_num, int toggle)
+{
+    cvmx_usb_internal_state_t *usb = (cvmx_usb_internal_state_t*)state;
+    cvmx_usb_pipe_t *pipe = usb->pipe + endpoint_num;
+
+    pipe->pid_toggle = !!toggle;
+}
+
+extern int cvmx_usb_get_toggle(cvmx_usb_state_t *state, int endpoint_num)
+{
+    cvmx_usb_internal_state_t *usb = (cvmx_usb_internal_state_t*)state;
+    cvmx_usb_pipe_t *pipe = usb->pipe + endpoint_num;
+
+    if (pipe->pid_toggle)
+	    return (1);
+    return (0);
+}

Modified: user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-usb.h
==============================================================================
--- user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-usb.h	Sat Jun 19 20:34:37 2010	(r209354)
+++ user/jmallett/octeon/sys/contrib/octeon-sdk/cvmx-usb.h	Sat Jun 19 21:10:13 2010	(r209355)
@@ -1122,6 +1122,13 @@ extern cvmx_usb_status_t cvmx_usb_device
 extern cvmx_usb_status_t cvmx_usb_device_disable_endpoint(cvmx_usb_state_t *state,
                                                           int endpoint_num);
 
+/*
+ * The FreeBSD host driver uses these functions to manipulate the toggle to deal
+ * more easily with endpoint management.
+ */
+extern void cvmx_usb_set_toggle(cvmx_usb_state_t *state, int endpoint_num, int toggle);
+extern int cvmx_usb_get_toggle(cvmx_usb_state_t *state, int endpoint_num);
+
 #ifdef	__cplusplus
 }
 #endif


More information about the svn-src-user mailing list