PERFORCE change 103119 for review
Hans Petter Selasky
hselasky at FreeBSD.org
Thu Aug 3 15:06:15 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=103119
Change 103119 by hselasky at hselasky_mini_itx on 2006/08/03 15:05:54
Add new function, usbd_ether_get_mbuf(). Fix formatting of comments,
so that the bounding boxes have the same width. Fix compilation of
usbd_m_copy_in_cb() on NetBSD.
Affected files ...
.. //depot/projects/usb/src/sys/dev/usb/usb_port.h#7 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_subr.c#12 edit
.. //depot/projects/usb/src/sys/dev/usb/usb_subr.h#17 edit
Differences ...
==== //depot/projects/usb/src/sys/dev/usb/usb_port.h#7 (text+ko) ====
@@ -64,6 +64,8 @@
# include <sys/taskqueue.h>
# include <sys/callout.h> /* callout_xxx() */
+# include <net/ethernet.h> /* ETHER_XXX */
+
# ifndef __KASSERT
typedef struct cdevsw cdevsw_t;
# define __lockmgr lockmgr
==== //depot/projects/usb/src/sys/dev/usb/usb_subr.c#12 (text+ko) ====
@@ -1552,11 +1552,11 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* allocate mbufs to an usbd interface queue
*
* returns a pointer that eventually should be passed to "free()"
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void *
usbd_alloc_mbufs(struct malloc_type *type, struct usbd_ifqueue *ifq,
u_int32_t block_size, u_int16_t block_number)
@@ -1600,9 +1600,9 @@
return free_ptr;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_get_page - lookup DMA-able memory for the given offset
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void
usbd_get_page(struct usbd_page_cache *cache, u_int32_t offset,
struct usbd_page_search *res)
@@ -1652,9 +1652,9 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_copy_in - copy directly to DMA-able memory
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void
usbd_copy_in(struct usbd_page_cache *cache, u_int32_t offset,
const void *ptr, u_int32_t len)
@@ -1683,16 +1683,20 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_m_copy_in - copy a mbuf chain directly into DMA-able memory
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
struct usbd_m_copy_in_arg {
struct usbd_page_cache *cache;
u_int32_t dst_offset;
};
static int32_t
+#ifdef __FreeBSD__
usbd_m_copy_in_cb(void *arg, void *src, u_int32_t count)
+#else
+usbd_m_copy_in_cb(void *arg, caddr_t src, u_int32_t count)
+#endif
{
register struct usbd_m_copy_in_arg *ua = arg;
usbd_copy_in(ua->cache, ua->dst_offset, src, count);
@@ -1710,9 +1714,9 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_copy_out - copy directly from DMA-able memory
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void
usbd_copy_out(struct usbd_page_cache *cache, u_int32_t offset,
void *ptr, u_int32_t len)
@@ -1741,9 +1745,9 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_bzero - zero DMA-able memory
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void
usbd_bzero(struct usbd_page_cache *cache, u_int32_t offset, u_int32_t len)
{
@@ -1770,13 +1774,13 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_page_alloc - allocate multiple DMA-able memory pages
*
* return values:
* 1: failure
* 0: success
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
u_int8_t
usbd_page_alloc(bus_dma_tag_t tag, struct usbd_page *page,
u_int32_t npages)
@@ -1815,9 +1819,9 @@
return 0; /* success */
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_page_free - free multiple DMA-able memory pages
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void
usbd_page_free(struct usbd_page *page, u_int32_t npages)
{
@@ -1827,9 +1831,9 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_page_get_buf - get virtual buffer
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void *
usbd_page_get_buf(struct usbd_page *page, u_int32_t size)
{
@@ -1838,9 +1842,9 @@
return ADD_BYTES(page->buffer,size);
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_page_get_phy - get physical buffer
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
bus_size_t
usbd_page_get_phy(struct usbd_page *page, u_int32_t size)
{
@@ -1849,9 +1853,9 @@
return (page->physaddr + size);
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_page_set_start
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void
usbd_page_set_start(struct usbd_page_cache *pc, struct usbd_page *page_ptr,
u_int32_t size)
@@ -1861,9 +1865,9 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_page_set_end
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void
usbd_page_set_end(struct usbd_page_cache *pc, struct usbd_page *page_ptr,
u_int32_t size)
@@ -1873,9 +1877,9 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_page_fit_obj - fit object function
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
u_int32_t
usbd_page_fit_obj(struct usbd_page *page, u_int32_t size, u_int32_t obj_len)
{
@@ -1908,9 +1912,9 @@
return adj;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_mem_alloc - allocate DMA-able memory
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void *
usbd_mem_alloc(bus_dma_tag_t parent, u_int32_t size,
u_int8_t align_power)
@@ -1943,9 +1947,9 @@
return ptr;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_mem_vtophys - get the physical address of DMA-able memory
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
bus_size_t
usbd_mem_vtophys(void *ptr, u_int32_t size)
{
@@ -1958,9 +1962,9 @@
return page->physaddr;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_mem_free - free DMA-able memory
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void
usbd_mem_free(void *ptr, u_int32_t size)
{
@@ -1981,9 +1985,9 @@
}
#ifdef __FreeBSD__
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* bus_dmamap_load_callback
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
static void
bus_dmamap_load_callback(void *arg, bus_dma_segment_t *segs,
int nseg, int error)
@@ -1998,9 +2002,9 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_dma_tag_alloc - allocate a bus-DMA tag
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
bus_dma_tag_t
usbd_dma_tag_alloc(bus_dma_tag_t parent, u_int32_t size,
u_int32_t alignment)
@@ -2028,9 +2032,9 @@
return tag;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_dma_tag_free - free a bus-DMA tag
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void
usbd_dma_tag_free(bus_dma_tag_t tag)
{
@@ -2038,9 +2042,9 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_mem_alloc_sub - allocate DMA-able memory
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void *
usbd_mem_alloc_sub(bus_dma_tag_t tag, struct usbd_page *page,
u_int32_t size, u_int32_t alignment)
@@ -2082,9 +2086,9 @@
return ptr;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_mem_free_sub - free DMA-able memory
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void
usbd_mem_free_sub(struct usbd_page *page)
{
@@ -2215,9 +2219,9 @@
}
#endif
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_std_transfer_setup - standard transfer setup
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
void
usbd_std_transfer_setup(struct usbd_xfer *xfer,
const struct usbd_config *setup,
@@ -2272,9 +2276,9 @@
return;
}
-/*---------------------------------------------------------------------------*
+/*------------------------------------------------------------------------------*
* usbd_make_str_desc - convert an ASCII string into a UNICODE string
- *---------------------------------------------------------------------------*/
+ *------------------------------------------------------------------------------*/
u_int8_t
usbd_make_str_desc(void *ptr, u_int16_t max_len, const char *s)
{
@@ -2314,9 +2318,9 @@
return totlen;
}
-/*------------------------------------------------------------------------*
+/*---------------------------------------------------------------------------*
* mtx_drop_recurse - drop mutex recurse level
- *------------------------------------------------------------------------*/
+ *---------------------------------------------------------------------------*/
u_int32_t
mtx_drop_recurse(struct mtx *mtx)
{
@@ -2332,9 +2336,9 @@
return recurse_level;
}
-/*------------------------------------------------------------------------*
+/*---------------------------------------------------------------------------*
* mtx_pickup_recurse - pickup mutex recurse level
- *------------------------------------------------------------------------*/
+ *---------------------------------------------------------------------------*/
void
mtx_pickup_recurse(struct mtx *mtx, u_int32_t recurse_level)
{
@@ -2347,9 +2351,9 @@
}
-/*------------------------------------------------------------------------*
+/*---------------------------------------------------------------------------*
* usbd_config_thread
- *------------------------------------------------------------------------*/
+ *---------------------------------------------------------------------------*/
static void
usbd_config_td_thread(void *arg)
{
@@ -2399,7 +2403,7 @@
return;
}
-/*------------------------------------------------------------------------*
+/*---------------------------------------------------------------------------*
* usbd_config_td_setup
*
* NOTE: the structure pointed to by "ctd" must be zeroed before calling
@@ -2408,7 +2412,7 @@
* Return values:
* 0: success
* else: failure
- *------------------------------------------------------------------------*/
+ *---------------------------------------------------------------------------*/
u_int8_t
usbd_config_td_setup(struct usbd_config_td *ctd, void *priv_sc,
struct mtx *priv_mtx,
@@ -2451,9 +2455,9 @@
return 1;
}
-/*------------------------------------------------------------------------*
+/*---------------------------------------------------------------------------*
* usbd_config_td_dummy_cmd
- *------------------------------------------------------------------------*/
+ *---------------------------------------------------------------------------*/
static void
usbd_config_td_dummy_cmd(struct usbd_config_td_softc *sc,
struct usbd_config_td_cc *cc,
@@ -2462,12 +2466,12 @@
return;
}
-/*------------------------------------------------------------------------*
+/*---------------------------------------------------------------------------*
* usbd_config_td_stop
*
* NOTE: If the structure pointed to by "ctd" is all zero,
* this function does nothing.
- *------------------------------------------------------------------------*/
+ *---------------------------------------------------------------------------*/
void
usbd_config_td_stop(struct usbd_config_td *ctd)
{
@@ -2492,12 +2496,12 @@
return;
}
-/*------------------------------------------------------------------------*
+/*---------------------------------------------------------------------------*
* usbd_config_td_unsetup
*
* NOTE: If the structure pointed to by "ctd" is all zero,
* this function does nothing.
- *------------------------------------------------------------------------*/
+ *---------------------------------------------------------------------------*/
void
usbd_config_td_unsetup(struct usbd_config_td *ctd)
{
@@ -2513,9 +2517,9 @@
return;
}
-/*------------------------------------------------------------------------*
+/*---------------------------------------------------------------------------*
* usbd_config_td_queue_command
- *------------------------------------------------------------------------*/
+ *---------------------------------------------------------------------------*/
void
usbd_config_td_queue_command(struct usbd_config_td *ctd,
usbd_config_td_command_t *command_func,
@@ -2586,11 +2590,11 @@
return;
}
-/*------------------------------------------------------------------------*
+/*---------------------------------------------------------------------------*
* usbd_config_td_check_gone
*
* NOTE: this function can only be called from the config thread
- *------------------------------------------------------------------------*/
+ *---------------------------------------------------------------------------*/
void
usbd_config_td_check_gone(struct usbd_config_td *ctd)
{
@@ -2613,11 +2617,11 @@
return;
}
-/*------------------------------------------------------------------------*
+/*---------------------------------------------------------------------------*
* usbd_config_td_sleep
*
* NOTE: this function can only be called from the config thread
- *------------------------------------------------------------------------*/
+ *---------------------------------------------------------------------------*/
void
usbd_config_td_sleep(struct usbd_config_td *ctd, u_int32_t timeout)
{
@@ -2638,3 +2642,19 @@
return;
}
+
+/*---------------------------------------------------------------------------*
+ * usbd_ether_get_mbuf - get a new ethernet mbuf
+ *---------------------------------------------------------------------------*/
+struct mbuf *
+usbd_ether_get_mbuf(void)
+{
+ register struct mbuf *m_new;
+
+ m_new = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR);
+ if (m_new) {
+ m_new->m_len = m_new->m_pkthdr.len = MCLBYTES;
+ m_adj(m_new, ETHER_ALIGN);
+ }
+ return (m_new);
+}
==== //depot/projects/usb/src/sys/dev/usb/usb_subr.h#17 (text+ko) ====
@@ -775,6 +775,9 @@
void
usbd_config_td_sleep(struct usbd_config_td *ctd, u_int32_t timeout);
+struct mbuf *
+usbd_ether_get_mbuf(void);
+
/* routines from usb.c */
#if 0
More information about the p4-projects
mailing list