socsvn commit: r255270 - soc2013/bguan/head/sys/dev/xen/usbfront

bguan at FreeBSD.org bguan at FreeBSD.org
Sun Jul 28 17:24:24 UTC 2013


Author: bguan
Date: Sun Jul 28 17:24:24 2013
New Revision: 255270
URL: http://svnweb.FreeBSD.org/socsvn/?view=rev&rev=255270

Log:
  add struct mtx for usbfront

Modified:
  soc2013/bguan/head/sys/dev/xen/usbfront/xenhci.h

Modified: soc2013/bguan/head/sys/dev/xen/usbfront/xenhci.h
==============================================================================
--- soc2013/bguan/head/sys/dev/xen/usbfront/xenhci.h	Sun Jul 28 17:24:11 2013	(r255269)
+++ soc2013/bguan/head/sys/dev/xen/usbfront/xenhci.h	Sun Jul 28 17:24:24 2013	(r255270)
@@ -35,6 +35,13 @@
 
 #define	XENHCI_MAX_DEVICES	MIN(USB_MAX_DEVICES, 128)
 
+#define	XENHCI_PAGE_SIZE	4096	/* bytes */
+
+//#define TASK_COMM_LEN 	16	/* Task command name length */
+
+#define GRANT_INVALID_REF 	0
+
+
 /* USB ports. This is arbitrary.
  * From USB 2.0 spec Table 11-13, offset 7, a hub can
  * have up to 255 ports. The most yet reported is 10.
@@ -50,6 +57,7 @@
 #endif
 
 #define USB_URB_RING_SIZE __RING_SIZE((usbif_urb_sring_t *)0, PAGE_SIZE)
+#define USB_CONN_RING_SIZE __RING_SIZE((usbif_conn_sring_t *)0, PAGE_SIZE)
 
 LIST_HEAD(list_head, list_head);
 
@@ -74,7 +82,24 @@
 	enum usb_dev_speed 	speed;
 };
 
+/* 
+ The "hardware" in Xen host controller is the shared ring to 
+ the backend driver and the data you can send and receive across it
+*/
+//struct xenhci_hw_softc {
+	//struct usb_page_cache	root_pc;
+	//struct usb_page_cache	ctx_pc;
+	//struct usb_page_cache	scratch_pc[XHCI_MAX_SCRATCHPADS];
+
+	//struct usb_page		root_pg;
+	//struct usb_page		ctx_pg;
+	//struct usb_page		scratch_pg[XHCI_MAX_SCRATCHPADS];
+
+	//struct xhci_hw_dev	devs[XHCI_MAX_DEVICES + 1];
+//};
+
 struct xenhci_softc {
+	//struct xenhci_hw_softc	sc_hw;
 	/* base device */
 	struct usb_bus		sc_bus;
 	/* configure message */
@@ -90,7 +115,7 @@
 	LIST_ENTRY(list_head)	in_progress_list;	//??
 	LIST_ENTRY(list_head)	giveback_waiting_list;	//??
 
-	//spinlock_t lock;
+	struct	mtx		lock;	//spinlock_t lock;
 
 	/* timer that kick pending and giveback waiting urbs */
 	//struct timer_list 	watchdog;//??
@@ -115,8 +140,9 @@
 	unsigned long 		shadow_free;
 
 	/* ring response thread */
-	struct task	 	*ringthread;//struct task_struct *kthread;
-	LIST_ENTRY(list_head)	*wait_list; //wait_queue_head_t 	wq;??
+	struct task	 	*kthread;//struct task_struct *kthread;
+	//LIST_ENTRY(list_head)	*wait_list; //wait_queue_head_t 	wq;??
+	struct taskqueue        *wait_taskqueue;
 	unsigned int 		waiting_resp;//
 };
 


More information about the svn-soc-all mailing list