Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #85 from ddv2005/rpi-patches

Update Synopsys USB OTG driver to v2.94a and disable CRYPTOLIB. Third attempt
  • Loading branch information...
commit 775d4ce0e79ee0e909b37a48525bc9195bc020a8 2 parents c664352 + df9a562
@popcornmix popcornmix authored
Showing with 11,738 additions and 14,869 deletions.
  1. +25 −13 drivers/usb/host/dwc_common_port/Makefile
  2. +17 −0 drivers/usb/host/dwc_common_port/Makefile.fbsd
  3. +26 −13 drivers/usb/host/dwc_common_port/Makefile.linux
  4. +174 −0 drivers/usb/host/dwc_common_port/changes.txt
  5. 0  drivers/usb/host/dwc_common_port/doc/doxygen.cfg
  6. +0 −81 drivers/usb/host/dwc_common_port/doc/html/dir_c13d72e45af28cdc461a5f284d3d36fc.html
  7. +0 −22 drivers/usb/host/dwc_common_port/doc/html/dirs.html
  8. +0 −358 drivers/usb/host/dwc_common_port/doc/html/doxygen.css
  9. +0 −709 drivers/usb/host/dwc_common_port/doc/html/dwc__cc_8h.html
  10. +0 −435 drivers/usb/host/dwc_common_port/doc/html/dwc__crypto_8c.html
  11. +0 −618 drivers/usb/host/dwc_common_port/doc/html/dwc__crypto_8h.html
  12. +0 −166 drivers/usb/host/dwc_common_port/doc/html/dwc__dh_8h.html
  13. +0 −1,844 drivers/usb/host/dwc_common_port/doc/html/dwc__list_8h.html
  14. +0 −48 drivers/usb/host/dwc_common_port/doc/html/dwc__modpow_8h.html
  15. +0 −306 drivers/usb/host/dwc_common_port/doc/html/dwc__notifier_8h.html
  16. +0 −3,090 drivers/usb/host/dwc_common_port/doc/html/dwc__os_8h.html
  17. +0 −34 drivers/usb/host/dwc_common_port/doc/html/files.html
  18. +0 −163 drivers/usb/host/dwc_common_port/doc/html/globals.html
  19. +0 −41 drivers/usb/host/dwc_common_port/doc/html/globals_defs.html
  20. +0 −153 drivers/usb/host/dwc_common_port/doc/html/globals_func.html
  21. +0 −41 drivers/usb/host/dwc_common_port/doc/html/globals_type.html
  22. +0 −8 drivers/usb/host/dwc_common_port/doc/html/index.html
  23. +0 −45 drivers/usb/host/dwc_common_port/doc/html/main.html
  24. +0 −23 drivers/usb/host/dwc_common_port/doc/html/pages.html
  25. +0 −102 drivers/usb/host/dwc_common_port/doc/html/tabs.css
  26. +0 −23 drivers/usb/host/dwc_common_port/doc/html/todo.html
  27. +0 −90 drivers/usb/host/dwc_common_port/doc/html/tree.html
  28. +71 −45 drivers/usb/host/dwc_common_port/dwc_cc.c
  29. +29 −13 drivers/usb/host/dwc_common_port/dwc_cc.h
  30. +1,308 −0 drivers/usb/host/dwc_common_port/dwc_common_fbsd.c
  31. +813 −530 drivers/usb/host/dwc_common_port/dwc_common_linux.c
  32. +1,275 −0 drivers/usb/host/dwc_common_port/dwc_common_nbsd.c
  33. +308 −0 drivers/usb/host/dwc_common_port/dwc_crypto.c
  34. +111 −0 drivers/usb/host/dwc_common_port/dwc_crypto.h
  35. +291 −0 drivers/usb/host/dwc_common_port/dwc_dh.c
  36. +106 −0 drivers/usb/host/dwc_common_port/dwc_dh.h
  37. +126 −148 drivers/usb/host/dwc_common_port/dwc_list.h
  38. +132 −59 drivers/usb/host/dwc_common_port/dwc_mem.c
  39. +636 −0 drivers/usb/host/dwc_common_port/dwc_modpow.c
  40. +34 −0 drivers/usb/host/dwc_common_port/dwc_modpow.h
  41. +109 −46 drivers/usb/host/dwc_common_port/dwc_notifier.c
  42. +16 −6 drivers/usb/host/dwc_common_port/dwc_notifier.h
  43. +481 −146 drivers/usb/host/dwc_common_port/dwc_os.h
  44. +202 −106 drivers/usb/host/dwc_common_port/usb.h
  45. +20 −20 drivers/usb/host/dwc_otg/Makefile
  46. +1 −1  drivers/usb/host/dwc_otg/doc/doxygen.cfg
  47. +16 −35 drivers/usb/host/dwc_otg/doc/html/annotated.html
  48. +28 −115 drivers/usb/host/dwc_otg/doc/html/doxygen.css
  49. BIN  drivers/usb/host/dwc_otg/doc/html/doxygen.png
  50. +0 −1,550 drivers/usb/host/dwc_otg/doc/html/dummy__audio_8c-source.html
  51. +92 −104 drivers/usb/host/dwc_otg/doc/html/dwc__cfi__common_8h-source.html
  52. +43 −59 drivers/usb/host/dwc_otg/doc/html/dwc__cfi__common_8h.html
  53. +769 −0 drivers/usb/host/dwc_otg/doc/html/dwc__otg__adp_8c-source.html
  54. +482 −0 drivers/usb/host/dwc_otg/doc/html/dwc__otg__adp_8c.html
  55. +80 −0 drivers/usb/host/dwc_otg/doc/html/dwc__otg__adp_8h-source.html
  56. +308 −0 drivers/usb/host/dwc_otg/doc/html/dwc__otg__adp_8h.html
  57. +921 −820 drivers/usb/host/dwc_otg/doc/html/dwc__otg__attr_8c-source.html
  58. +410 −304 drivers/usb/host/dwc_otg/doc/html/dwc__otg__attr_8c.html
  59. +86 −97 drivers/usb/host/dwc_otg/doc/html/dwc__otg__attr_8h-source.html
  60. +36 −46 drivers/usb/host/dwc_otg/doc/html/dwc__otg__attr_8h.html
  61. +1,703 −1,716 drivers/usb/host/dwc_otg/doc/html/dwc__otg__cfi_8c-source.html
  62. +6 −18 drivers/usb/host/dwc_otg/doc/html/dwc__otg__cfi_8c.html
  63. +279 −291 drivers/usb/host/dwc_otg/doc/html/dwc__otg__cfi_8h-source.html
  64. +168 −168 drivers/usb/host/dwc_otg/doc/html/dwc__otg__cfi_8h.html
Sorry, we could not display the entire diff because too many files (363) changed.
View
38 drivers/usb/host/dwc_common_port/Makefile 100644 → 100755
@@ -4,21 +4,25 @@
ifneq ($(KERNELRELEASE),)
-#CPPFLAGS += -DDEBUG_MEMORY
+EXTRA_CFLAGS += -DDWC_LINUX
+#EXTRA_CFLAGS += -DDEBUG
+#EXTRA_CFLAGS += -DDWC_DEBUG_REGS
+#EXTRA_CFLAGS += -DDWC_DEBUG_MEMORY
-ifeq ($(CONFIG_USB_DEBUG),y)
-CPPFLAGS += -DDEBUG
-endif
-CPPFLAGS += -DDWC_LINUX
+EXTRA_CFLAGS += -DDWC_LIBMODULE
+EXTRA_CFLAGS += -DDWC_CCLIB
+#EXTRA_CFLAGS += -DDWC_CRYPTOLIB
+EXTRA_CFLAGS += -DDWC_NOTIFYLIB
+EXTRA_CFLAGS += -DDWC_UTFLIB
obj-$(CONFIG_USB_DWCOTG) += dwc_common_port_lib.o
-dwc_common_port_lib-objs := dwc_cc.o \
- dwc_notifier.o \
- dwc_common_linux.o dwc_mem.o
+dwc_common_port_lib-objs := dwc_cc.o dwc_modpow.o dwc_dh.o \
+ dwc_crypto.o dwc_notifier.o \
+ dwc_common_linux.o dwc_mem.o
kernrelwd := $(subst ., ,$(KERNELRELEASE))
kernrel3 := $(word 1,$(kernrelwd)).$(word 2,$(kernrelwd)).$(word 3,$(kernrelwd))
-
+
ifneq ($(kernrel3),2.6.20)
# grayg - I only know that we use EXTRA_CFLAGS in 2.6.31 actually
EXTRA_CFLAGS += $(CPPFLAGS)
@@ -26,12 +30,21 @@ endif
else
+ifeq ($(KDIR),)
+$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment)
+endif
+
+ifeq ($(ARCH),)
+$(error Must give "ARCH=<arch>" on command line or in environment. Also, if \
+ cross-compiling, must give "CROSS_COMPILE=/path/to/compiler/plus/tool-prefix-")
+endif
+
ifeq ($(DOXYGEN),)
-DOXYGEN := $(DOXYGEN)
+DOXYGEN := doxygen
endif
default:
- $(MAKE) -C$(KDIR) M=$(PWD) modules
+ $(MAKE) -C$(KDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules
docs: $(wildcard *.[hc]) doc/doxygen.cfg
$(DOXYGEN) doc/doxygen.cfg
@@ -42,5 +55,4 @@ tags: $(wildcard *.[hc])
endif
clean:
- rm -rf *.o *.ko .*cmd *.mod.c .tmp_versions Module.symvers
-
+ rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/
View
17 drivers/usb/host/dwc_common_port/Makefile.fbsd
@@ -0,0 +1,17 @@
+CFLAGS += -I/sys/i386/compile/GENERIC -I/sys/i386/include -I/usr/include
+CFLAGS += -DDWC_FREEBSD
+CFLAGS += -DDEBUG
+#CFLAGS += -DDWC_DEBUG_REGS
+#CFLAGS += -DDWC_DEBUG_MEMORY
+
+#CFLAGS += -DDWC_LIBMODULE
+#CFLAGS += -DDWC_CCLIB
+#CFLAGS += -DDWC_CRYPTOLIB
+#CFLAGS += -DDWC_NOTIFYLIB
+#CFLAGS += -DDWC_UTFLIB
+
+KMOD = dwc_common_port_lib
+SRCS = dwc_cc.c dwc_modpow.c dwc_dh.c dwc_crypto.c dwc_notifier.c \
+ dwc_common_fbsd.c dwc_mem.c
+
+.include <bsd.kmod.mk>
View
39 drivers/usb/host/dwc_common_port/Makefile.linux 100644 → 100755
@@ -3,25 +3,39 @@
#
ifneq ($(KERNELRELEASE),)
-#CPPFLAGS += -DDEBUG_MEMORY
-
-#CPPFLAGS += -DDEBUG
-CPPFLAGS += -DDWC_LINUX
-
-obj-m := dwc_common_port_lib.o
-dwc_common_port_lib-objs := dwc_cc.o dwc_modpow.o dwc_dh.o \
- dwc_crypto.o dwc_notifier.o \
- dwc_common_linux.o dwc_mem.o
+EXTRA_CFLAGS += -DDWC_LINUX
+#EXTRA_CFLAGS += -DDEBUG
+#EXTRA_CFLAGS += -DDWC_DEBUG_REGS
+#EXTRA_CFLAGS += -DDWC_DEBUG_MEMORY
+
+EXTRA_CFLAGS += -DDWC_LIBMODULE
+EXTRA_CFLAGS += -DDWC_CCLIB
+EXTRA_CFLAGS += -DDWC_CRYPTOLIB
+EXTRA_CFLAGS += -DDWC_NOTIFYLIB
+EXTRA_CFLAGS += -DDWC_UTFLIB
+
+obj-m := dwc_common_port_lib.o
+dwc_common_port_lib-objs := dwc_cc.o dwc_modpow.o dwc_dh.o \
+ dwc_crypto.o dwc_notifier.o \
+ dwc_common_linux.o dwc_mem.o
else
+ifeq ($(KDIR),)
+$(error Must give "KDIR=/path/to/kernel/source" on command line or in environment)
+endif
+
+ifeq ($(ARCH),)
+$(error Must give "ARCH=<arch>" on command line or in environment. Also, if \
+ cross-compiling, must give "CROSS_COMPILE=/path/to/compiler/plus/tool-prefix-")
+endif
ifeq ($(DOXYGEN),)
-DOXYGEN := $(DOXYGEN)
+DOXYGEN := doxygen
endif
default:
- $(MAKE) -C$(KDIR) M=$(PWD) modules
+ $(MAKE) -C$(KDIR) M=$(PWD) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) modules
docs: $(wildcard *.[hc]) doc/doxygen.cfg
$(DOXYGEN) doc/doxygen.cfg
@@ -32,5 +46,4 @@ tags: $(wildcard *.[hc])
endif
clean:
- rm -rf *.o *.ko .*cmd *.mod.c .tmp_versions Module.symvers
-
+ rm -rf *.o *.ko .*.cmd *.mod.c .*.o.d .*.o.tmp modules.order Module.markers Module.symvers .tmp_versions/
View
174 drivers/usb/host/dwc_common_port/changes.txt
@@ -0,0 +1,174 @@
+
+dwc_read_reg32() and friends now take an additional parameter, a pointer to an
+IO context struct. The IO context struct should live in an os-dependent struct
+in your driver. As an example, the dwc_usb3 driver has an os-dependent struct
+named 'os_dep' embedded in the main device struct. So there these calls look
+like this:
+
+ dwc_read_reg32(&usb3_dev->os_dep.ioctx, &pcd->dev_global_regs->dcfg);
+
+ dwc_write_reg32(&usb3_dev->os_dep.ioctx,
+ &pcd->dev_global_regs->dcfg, 0);
+
+Note that for the existing Linux driver ports, it is not necessary to actually
+define the 'ioctx' member in the os-dependent struct. Since Linux does not
+require an IO context, its macros for dwc_read_reg32() and friends do not
+use the context pointer, so it is optimized away by the compiler. But it is
+necessary to add the pointer parameter to all of the call sites, to be ready
+for any future ports (such as FreeBSD) which do require an IO context.
+
+
+Similarly, dwc_alloc(), dwc_alloc_atomic(), dwc_strdup(), and dwc_free() now
+take an additional parameter, a pointer to a memory context. Examples:
+
+ addr = dwc_alloc(&usb3_dev->os_dep.memctx, size);
+
+ dwc_free(&usb3_dev->os_dep.memctx, addr);
+
+Again, for the Linux ports, it is not necessary to actually define the memctx
+member, but it is necessary to add the pointer parameter to all of the call
+sites.
+
+
+Same for dwc_dma_alloc() and dwc_dma_free(). Examples:
+
+ virt_addr = dwc_dma_alloc(&usb3_dev->os_dep.dmactx, size, &phys_addr);
+
+ dwc_dma_free(&usb3_dev->os_dep.dmactx, size, virt_addr, phys_addr);
+
+
+Same for dwc_mutex_alloc() and dwc_mutex_free(). Examples:
+
+ mutex = dwc_mutex_alloc(&usb3_dev->os_dep.mtxctx);
+
+ dwc_mutex_free(&usb3_dev->os_dep.mtxctx, mutex);
+
+
+Same for dwc_spinlock_alloc() and dwc_spinlock_free(). Examples:
+
+ lock = dwc_spinlock_alloc(&usb3_dev->osdep.splctx);
+
+ dwc_spinlock_free(&usb3_dev->osdep.splctx, lock);
+
+
+Same for dwc_timer_alloc(). Example:
+
+ timer = dwc_timer_alloc(&usb3_dev->os_dep.tmrctx, "dwc_usb3_tmr1",
+ cb_func, cb_data);
+
+
+Same for dwc_waitq_alloc(). Example:
+
+ waitq = dwc_waitq_alloc(&usb3_dev->os_dep.wtqctx);
+
+
+Same for dwc_thread_run(). Example:
+
+ thread = dwc_thread_run(&usb3_dev->os_dep.thdctx, func,
+ "dwc_usb3_thd1", data);
+
+
+Same for dwc_workq_alloc(). Example:
+
+ workq = dwc_workq_alloc(&usb3_dev->osdep.wkqctx, "dwc_usb3_wkq1");
+
+
+Same for dwc_task_alloc(). Example:
+
+ task = dwc_task_alloc(&usb3_dev->os_dep.tskctx, "dwc_usb3_tsk1",
+ cb_func, cb_data);
+
+
+In addition to the context pointer additions, a few core functions have had
+other changes made to their parameters:
+
+The 'flags' parameter to dwc_spinlock_irqsave() and dwc_spinunlock_irqrestore()
+has been changed from a uint64_t to a dwc_irqflags_t.
+
+dwc_thread_should_stop() now takes a 'dwc_thread_t *' parameter, because the
+FreeBSD equivalent of that function requires it.
+
+And, in addition to the context pointer, dwc_task_alloc() also adds a
+'char *name' parameter, to be consistent with dwc_thread_run() and
+dwc_workq_alloc(), and because the FreeBSD equivalent of that function
+requires a unique name.
+
+
+Here is a complete list of the core functions that now take a pointer to a
+context as their first parameter:
+
+ dwc_read_reg32
+ dwc_read_reg64
+ dwc_write_reg32
+ dwc_write_reg64
+ dwc_modify_reg32
+ dwc_modify_reg64
+ dwc_alloc
+ dwc_alloc_atomic
+ dwc_strdup
+ dwc_free
+ dwc_dma_alloc
+ dwc_dma_free
+ dwc_mutex_alloc
+ dwc_mutex_free
+ dwc_spinlock_alloc
+ dwc_spinlock_free
+ dwc_timer_alloc
+ dwc_waitq_alloc
+ dwc_thread_run
+ dwc_workq_alloc
+ dwc_task_alloc Also adds a 'char *name' as its 2nd parameter
+
+And here are the core functions that have other changes to their parameters:
+
+ dwc_spinlock_irqsave 'flags' param is now a 'dwc_irqflags_t *'
+ dwc_spinunlock_irqrestore 'flags' param is now a 'dwc_irqflags_t'
+ dwc_thread_should_stop Adds a 'dwc_thread_t *' parameter
+
+
+
+The changes to the core functions also require some of the other library
+functions to change:
+
+ dwc_cc_if_alloc() and dwc_cc_if_free() now take a 'void *memctx'
+ (for memory allocation) as the 1st param and a 'void *mtxctx'
+ (for mutex allocation) as the 2nd param.
+
+ dwc_cc_clear(), dwc_cc_add(), dwc_cc_change(), dwc_cc_remove(),
+ dwc_cc_data_for_save(), and dwc_cc_restore_from_data() now take a
+ 'void *memctx' as the 1st param.
+
+ dwc_dh_modpow(), dwc_dh_pk(), and dwc_dh_derive_keys() now take a
+ 'void *memctx' as the 1st param.
+
+ dwc_modpow() now takes a 'void *memctx' as the 1st param.
+
+ dwc_alloc_notification_manager() now takes a 'void *memctx' as the
+ 1st param and a 'void *wkqctx' (for work queue allocation) as the 2nd
+ param, and also now returns an integer value that is non-zero if
+ allocation of its data structures or work queue fails.
+
+ dwc_register_notifier() now takes a 'void *memctx' as the 1st param.
+
+ dwc_memory_debug_start() now takes a 'void *mem_ctx' as the first
+ param, and also now returns an integer value that is non-zero if
+ allocation of its data structures fails.
+
+
+
+Other miscellaneous changes:
+
+The DEBUG_MEMORY and DEBUG_REGS #define's have been renamed to
+DWC_DEBUG_MEMORY and DWC_DEBUG_REGS.
+
+The following #define's have been added to allow selectively compiling library
+features:
+
+ DWC_CCLIB
+ DWC_CRYPTOLIB
+ DWC_NOTIFYLIB
+ DWC_UTFLIB
+
+A DWC_LIBMODULE #define has also been added. If this is not defined, then the
+module code in dwc_common_linux.c is not compiled in. This allows linking the
+library code directly into a driver module, instead of as a standalone module.
View
0  drivers/usb/host/dwc_common_port/doc/doxygen.cfg 100644 → 100755
File mode changed
View
81 drivers/usb/host/dwc_common_port/doc/html/dir_c13d72e45af28cdc461a5f284d3d36fc.html
@@ -1,81 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Synopsys DWC Portability and Common Library for UWB: dwc_common_port/ Directory Reference</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- Generated by Doxygen 1.4.7 -->
-<div class="tabs">
- <ul>
- <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li><a href="dirs.html"><span>Directories</span></a></li>
- <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
- </ul></div>
-<div class="nav">
-<a class="el" href="dir_c13d72e45af28cdc461a5f284d3d36fc.html">dwc_common_port</a></div>
-<h1>dwc_common_port Directory Reference</h1>
-<p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Files</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>dwc_cc.c</b></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html">dwc_cc.h</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This file defines the Context Context library. <br></td></tr>
-
-<p>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>dwc_common_linux.c</b></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__crypto_8c.html">dwc_crypto.c</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This file contains the WUSB cryptographic routines. <br></td></tr>
-
-<p>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__crypto_8h.html">dwc_crypto.h</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This file contains declarations for the WUSB Cryptographic routines as defined in the WUSB spec. <br></td></tr>
-
-<p>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>dwc_dh.c</b></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__dh_8h.html">dwc_dh.h</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This file defines the common functions on device and host for performing numeric association as defined in the WUSB spec. <br></td></tr>
-
-<p>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__list_8h.html">dwc_list.h</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This file defines linked list operations. <br></td></tr>
-
-<p>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>dwc_mem.c</b></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>dwc_modpow.c</b></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__modpow_8h.html">dwc_modpow.h</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This file defines the module exponentiation function which is only used internally by the DWC UWB modules for calculation of PKs during numeric association. <br></td></tr>
-
-<p>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>dwc_notifier.c</b></td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__notifier_8h.html">dwc_notifier.h</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A simple implementation of the Observer pattern. <br></td></tr>
-
-<p>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__os_8h.html">dwc_os.h</a></td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">DWC portability library, low level os-wrapper functions. <br></td></tr>
-
-<p>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">file &nbsp;</td><td class="memItemRight" valign="bottom"><b>usb.h</b></td></tr>
-
-</table>
-<hr size="1"><address style="align: right;"><small>Generated on Tue May 5 02:22:50 2009 for Synopsys DWC Portability and Common Library for UWB by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
-</body>
-</html>
View
22 drivers/usb/host/dwc_common_port/doc/html/dirs.html
@@ -1,22 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Synopsys DWC Portability and Common Library for UWB: Directory Hierarchy</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- Generated by Doxygen 1.4.7 -->
-<div class="tabs">
- <ul>
- <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
- <li><a href="files.html"><span>Files</span></a></li>
- <li id="current"><a href="dirs.html"><span>Directories</span></a></li>
- <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
- </ul></div>
-<h1>Synopsys DWC Portability and Common Library for UWB Directories</h1>This directory hierarchy is sorted roughly, but not completely, alphabetically:<ul>
-<li><a class="el" href="dir_c13d72e45af28cdc461a5f284d3d36fc.html">dwc_common_port</a>
-</ul>
-<hr size="1"><address style="align: right;"><small>Generated on Tue May 5 02:22:50 2009 for Synopsys DWC Portability and Common Library for UWB by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
-</body>
-</html>
View
358 drivers/usb/host/dwc_common_port/doc/html/doxygen.css
@@ -1,358 +0,0 @@
-BODY,H1,H2,H3,H4,H5,H6,P,CENTER,TD,TH,UL,DL,DIV {
- font-family: Geneva, Arial, Helvetica, sans-serif;
-}
-BODY,TD {
- font-size: 90%;
-}
-H1 {
- text-align: center;
- font-size: 160%;
-}
-H2 {
- font-size: 120%;
-}
-H3 {
- font-size: 100%;
-}
-CAPTION { font-weight: bold }
-DIV.qindex {
- width: 100%;
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- padding: 2px;
- line-height: 140%;
-}
-DIV.nav {
- width: 100%;
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- padding: 2px;
- line-height: 140%;
-}
-DIV.navtab {
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- margin-right: 15px;
- padding: 2px;
-}
-TD.navtab {
- font-size: 70%;
-}
-A.qindex {
- text-decoration: none;
- font-weight: bold;
- color: #1A419D;
-}
-A.qindex:visited {
- text-decoration: none;
- font-weight: bold;
- color: #1A419D
-}
-A.qindex:hover {
- text-decoration: none;
- background-color: #ddddff;
-}
-A.qindexHL {
- text-decoration: none;
- font-weight: bold;
- background-color: #6666cc;
- color: #ffffff;
- border: 1px double #9295C2;
-}
-A.qindexHL:hover {
- text-decoration: none;
- background-color: #6666cc;
- color: #ffffff;
-}
-A.qindexHL:visited { text-decoration: none; background-color: #6666cc; color: #ffffff }
-A.el { text-decoration: none; font-weight: bold }
-A.elRef { font-weight: bold }
-A.code:link { text-decoration: none; font-weight: normal; color: #0000FF}
-A.code:visited { text-decoration: none; font-weight: normal; color: #0000FF}
-A.codeRef:link { font-weight: normal; color: #0000FF}
-A.codeRef:visited { font-weight: normal; color: #0000FF}
-A:hover { text-decoration: none; background-color: #f2f2ff }
-DL.el { margin-left: -1cm }
-.fragment {
- font-family: monospace, fixed;
- font-size: 95%;
-}
-PRE.fragment {
- border: 1px solid #CCCCCC;
- background-color: #f5f5f5;
- margin-top: 4px;
- margin-bottom: 4px;
- margin-left: 2px;
- margin-right: 8px;
- padding-left: 6px;
- padding-right: 6px;
- padding-top: 4px;
- padding-bottom: 4px;
-}
-DIV.ah { background-color: black; font-weight: bold; color: #ffffff; margin-bottom: 3px; margin-top: 3px }
-
-DIV.groupHeader {
- margin-left: 16px;
- margin-top: 12px;
- margin-bottom: 6px;
- font-weight: bold;
-}
-DIV.groupText { margin-left: 16px; font-style: italic; font-size: 90% }
-BODY {
- background: white;
- color: black;
- margin-right: 20px;
- margin-left: 20px;
-}
-TD.indexkey {
- background-color: #e8eef2;
- font-weight: bold;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
- border: 1px solid #CCCCCC;
-}
-TD.indexvalue {
- background-color: #e8eef2;
- font-style: italic;
- padding-right : 10px;
- padding-top : 2px;
- padding-left : 10px;
- padding-bottom : 2px;
- margin-left : 0px;
- margin-right : 0px;
- margin-top : 2px;
- margin-bottom : 2px;
- border: 1px solid #CCCCCC;
-}
-TR.memlist {
- background-color: #f0f0f0;
-}
-P.formulaDsp { text-align: center; }
-IMG.formulaDsp { }
-IMG.formulaInl { vertical-align: middle; }
-SPAN.keyword { color: #008000 }
-SPAN.keywordtype { color: #604020 }
-SPAN.keywordflow { color: #e08000 }
-SPAN.comment { color: #800000 }
-SPAN.preprocessor { color: #806020 }
-SPAN.stringliteral { color: #002080 }
-SPAN.charliteral { color: #008080 }
-.mdescLeft {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
-}
-.mdescRight {
- padding: 0px 8px 4px 8px;
- font-size: 80%;
- font-style: italic;
- background-color: #FAFAFA;
- border-top: 1px none #E0E0E0;
- border-right: 1px none #E0E0E0;
- border-bottom: 1px none #E0E0E0;
- border-left: 1px none #E0E0E0;
- margin: 0px;
-}
-.memItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplItemLeft {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplItemRight {
- padding: 1px 8px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: none;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.memTemplParams {
- padding: 1px 0px 0px 8px;
- margin: 4px;
- border-top-width: 1px;
- border-right-width: 1px;
- border-bottom-width: 1px;
- border-left-width: 1px;
- border-top-color: #E0E0E0;
- border-right-color: #E0E0E0;
- border-bottom-color: #E0E0E0;
- border-left-color: #E0E0E0;
- border-top-style: solid;
- border-right-style: none;
- border-bottom-style: none;
- border-left-style: none;
- color: #606060;
- background-color: #FAFAFA;
- font-size: 80%;
-}
-.search { color: #003399;
- font-weight: bold;
-}
-FORM.search {
- margin-bottom: 0px;
- margin-top: 0px;
-}
-INPUT.search { font-size: 75%;
- color: #000080;
- font-weight: normal;
- background-color: #e8eef2;
-}
-TD.tiny { font-size: 75%;
-}
-a {
- color: #1A41A8;
-}
-a:visited {
- color: #2A3798;
-}
-.dirtab { padding: 4px;
- border-collapse: collapse;
- border: 1px solid #84b0c7;
-}
-TH.dirtab { background: #e8eef2;
- font-weight: bold;
-}
-HR { height: 1px;
- border: none;
- border-top: 1px solid black;
-}
-
-/* Style for detailed member documentation */
-.memtemplate {
- font-size: 80%;
- color: #606060;
- font-weight: normal;
-}
-.memnav {
- background-color: #e8eef2;
- border: 1px solid #84b0c7;
- text-align: center;
- margin: 2px;
- margin-right: 15px;
- padding: 2px;
-}
-.memitem {
- padding: 4px;
- background-color: #eef3f5;
- border-width: 1px;
- border-style: solid;
- border-color: #dedeee;
- -moz-border-radius: 8px 8px 8px 8px;
-}
-.memname {
- white-space: nowrap;
- font-weight: bold;
-}
-.memdoc{
- padding-left: 10px;
-}
-.memproto {
- background-color: #d5e1e8;
- width: 100%;
- border-width: 1px;
- border-style: solid;
- border-color: #84b0c7;
- font-weight: bold;
- -moz-border-radius: 8px 8px 8px 8px;
-}
-.paramkey {
- text-align: right;
-}
-.paramtype {
- white-space: nowrap;
-}
-.paramname {
- color: #602020;
- font-style: italic;
-}
-/* End Styling for detailed member documentation */
-
-/* for the tree view */
-.ftvtree {
- font-family: sans-serif;
- margin:0.5em;
-}
-.directory { font-size: 9pt; font-weight: bold; }
-.directory h3 { margin: 0px; margin-top: 1em; font-size: 11pt; }
-.directory > h3 { margin-top: 0; }
-.directory p { margin: 0px; white-space: nowrap; }
-.directory div { display: none; margin: 0px; }
-.directory img { vertical-align: -30%; }
-
View
709 drivers/usb/host/dwc_common_port/doc/html/dwc__cc_8h.html
@@ -1,709 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Synopsys DWC Portability and Common Library for UWB: dwc_cc.h File Reference</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- Generated by Doxygen 1.4.7 -->
-<div class="tabs">
- <ul>
- <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="files.html"><span>Files</span></a></li>
- <li><a href="dirs.html"><span>Directories</span></a></li>
- <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul></div>
-<div class="nav">
-<a class="el" href="dir_c13d72e45af28cdc461a5f284d3d36fc.html">dwc_common_port</a></div>
-<h1>dwc_cc.h File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
-This file defines the Context Context library.
-<p>
-The main data structure is dwc_cc_if_t which is returned by either the dwc_cc_if_alloc function or returned by the module to the user via a provided function. The data structure is opaque and should only be manipulated via the functions provied in this API.<p>
-It manages a list of connection contexts and operations can be performed to add, remove, query, search, and change, those contexts. Additionally, a dwc_notifier_t object can be requested from the manager so that the user can be notified whenever the context list has changed.
-<p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Connection Context Operations</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">dwc_cc_if_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#bc9d8a8d9ef41b4167ff8c02d44c2d15">dwc_cc_if_alloc</a> (dwc_notifier_t *notifier, unsigned is_host)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">This function allocates memory for a dwc_cc_if_t structure, initializes fields to default values, and returns a pointer to the structure or NULL on error. <a href="#bc9d8a8d9ef41b4167ff8c02d44c2d15"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#a4f59eb28ddb889c7bf072c6291f1b52">dwc_cc_if_free</a> (dwc_cc_if_t *cc_if)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Frees the memory for the specified CC structure allocated from <a class="el" href="dwc__cc_8h.html#bc9d8a8d9ef41b4167ff8c02d44c2d15">dwc_cc_if_alloc()</a>. <a href="#a4f59eb28ddb889c7bf072c6291f1b52"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#ee140bfd74d33e7456bc4b2d8c23e834">dwc_cc_clear</a> (dwc_cc_if_t *cc_if)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Removes all contexts from the connection context list. <a href="#ee140bfd74d33e7456bc4b2d8c23e834"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#2e04f137cbe68b5db7cdd432af50efea">dwc_cc_add</a> (dwc_cc_if_t *cc_if, uint8_t *chid, uint8_t *cdid, uint8_t *ck, uint8_t *name, uint8_t length)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Adds a connection context (CHID, CK, CDID, Name) to the connection context list. <a href="#2e04f137cbe68b5db7cdd432af50efea"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#c0009353a8c89d81c0df4d838687136a">dwc_cc_change</a> (dwc_cc_if_t *cc_if, int32_t id, uint8_t *chid, uint8_t *cdid, uint8_t *ck, uint8_t *name, uint8_t length)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Changes the CHID, CK, CDID, or Name values of a connection context in the list, preserving any accumulated statistics. <a href="#c0009353a8c89d81c0df4d838687136a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#3c0b5c59eebbb92cededfa36bc8508d5">dwc_cc_remove</a> (dwc_cc_if_t *cc_if, int32_t id)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Remove the specified connection context. <a href="#3c0b5c59eebbb92cededfa36bc8508d5"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#9804503a6ae17fa6650da86d94e3a11d">dwc_cc_data_for_save</a> (dwc_cc_if_t *cc_if, unsigned int *length)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Get a binary block of data for the connection context list and attributes. <a href="#9804503a6ae17fa6650da86d94e3a11d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#0410780d5218fd44169bda226bfca65f">dwc_cc_restore_from_data</a> (dwc_cc_if_t *cc_if, uint8_t *data, unsigned int length)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Restore the connection context list from the binary data that was previously returned from a call to dwc_cc_data_for_save. <a href="#0410780d5218fd44169bda226bfca65f"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#97b48adfc54eb821a1d904d66fa554f1">dwc_cc_match_chid</a> (dwc_cc_if_t *cc_if, uint8_t *chid)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the connection context from the specified CHID. <a href="#97b48adfc54eb821a1d904d66fa554f1"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">uint32_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#bae07aa2652e5fad05d5dafa81009846">dwc_cc_match_cdid</a> (dwc_cc_if_t *cc_if, uint8_t *cdid)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Find the connection context from the specified CDID. <a href="#bae07aa2652e5fad05d5dafa81009846"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#07124231ec335379a59eb4c8198da119">dwc_cc_ck</a> (dwc_cc_if_t *cc_if, int32_t id)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the CK from the specified connection context. <a href="#07124231ec335379a59eb4c8198da119"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#135f9661d688df3be90b57cf8fe0e171">dwc_cc_chid</a> (dwc_cc_if_t *cc_if, int32_t id)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the CHID from the specified connection context. <a href="#135f9661d688df3be90b57cf8fe0e171"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">uint8_t *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#667f32649b4dcd8210bc54a307589162">dwc_cc_cdid</a> (dwc_cc_if_t *cc_if, int32_t id)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Retrieve the CDID from the specified connection context. <a href="#667f32649b4dcd8210bc54a307589162"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="a4de7adf817a7a2d4aa323fb2545139d"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_name" ref="a4de7adf817a7a2d4aa323fb2545139d" args="(dwc_cc_if_t *cc_if, int32_t id, uint8_t *length)" -->
-uint8_t *&nbsp;</td><td class="memItemRight" valign="bottom"><b>dwc_cc_name</b> (dwc_cc_if_t *cc_if, int32_t id, uint8_t *length)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#f90b3442b6c53b3e89c0580e1fb20b8f">dwc_assoc_is_not_zero_id</a> (uint8_t *id)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks a buffer for non-zero. <a href="#f90b3442b6c53b3e89c0580e1fb20b8f"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static unsigned&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#8485befd69b4bfbe5e9f13b9b24acda1">dwc_assoc_is_zero_id</a> (uint8_t *id)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Checks a buffer for zero. <a href="#8485befd69b4bfbe5e9f13b9b24acda1"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">static int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__cc_8h.html#46be9c2781971918e4f7d0e19699fe9d">dwc_print_id_string</a> (char *buffer, uint8_t *id)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Prints an ASCII representation for the 16-byte chid, cdid, or ck, into buffer. <a href="#46be9c2781971918e4f7d0e19699fe9d"></a><br></td></tr>
-<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="e02c11fa4d80f6d2590207be1c0683fe"></a><!-- doxytag: member="dwc_cc.h::DWC_CC_LIST_CHANGED_NOTIFICATION" ref="e02c11fa4d80f6d2590207be1c0683fe" args="" -->
-#define&nbsp;</td><td class="memItemRight" valign="bottom"><b>DWC_CC_LIST_CHANGED_NOTIFICATION</b>&nbsp;&nbsp;&nbsp;&quot;DWC_CC_LIST_CHANGED_NOTIFICATION&quot;</td></tr>
-
-<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="29bd8a8640eddddd07c7778dcbb57129"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_if_t" ref="29bd8a8640eddddd07c7778dcbb57129" args="" -->
-typedef dwc_cc_if&nbsp;</td><td class="memItemRight" valign="bottom"><b>dwc_cc_if_t</b></td></tr>
-
-</table>
-<hr><h2>Function Documentation</h2>
-<a class="anchor" name="bc9d8a8d9ef41b4167ff8c02d44c2d15"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_if_alloc" ref="bc9d8a8d9ef41b4167ff8c02d44c2d15" args="(dwc_notifier_t *notifier, unsigned is_host)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">dwc_cc_if_t* dwc_cc_if_alloc </td>
- <td>(</td>
- <td class="paramtype">dwc_notifier_t *&nbsp;</td>
- <td class="paramname"> <em>notifier</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned&nbsp;</td>
- <td class="paramname"> <em>is_host</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-This function allocates memory for a dwc_cc_if_t structure, initializes fields to default values, and returns a pointer to the structure or NULL on error.
-<p>
-
-</div>
-</div><p>
-<a class="anchor" name="a4f59eb28ddb889c7bf072c6291f1b52"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_if_free" ref="a4f59eb28ddb889c7bf072c6291f1b52" args="(dwc_cc_if_t *cc_if)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dwc_cc_if_free </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em> </td>
- <td>&nbsp;)&nbsp;</td>
- <td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Frees the memory for the specified CC structure allocated from <a class="el" href="dwc__cc_8h.html#bc9d8a8d9ef41b4167ff8c02d44c2d15">dwc_cc_if_alloc()</a>.
-<p>
-
-</div>
-</div><p>
-<a class="anchor" name="ee140bfd74d33e7456bc4b2d8c23e834"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_clear" ref="ee140bfd74d33e7456bc4b2d8c23e834" args="(dwc_cc_if_t *cc_if)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dwc_cc_clear </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em> </td>
- <td>&nbsp;)&nbsp;</td>
- <td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Removes all contexts from the connection context list.
-<p>
-
-</div>
-</div><p>
-<a class="anchor" name="2e04f137cbe68b5db7cdd432af50efea"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_add" ref="2e04f137cbe68b5db7cdd432af50efea" args="(dwc_cc_if_t *cc_if, uint8_t *chid, uint8_t *cdid, uint8_t *ck, uint8_t *name, uint8_t length)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int32_t dwc_cc_add </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>chid</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>cdid</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>ck</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>name</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t&nbsp;</td>
- <td class="paramname"> <em>length</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Adds a connection context (CHID, CK, CDID, Name) to the connection context list.
-<p>
-If a CHID already exists, the CK and name are overwritten. Statistics are not overwritten.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>cc_if</em>&nbsp;</td><td>The cc_if structure. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>chid</em>&nbsp;</td><td>A pointer to the 16-byte CHID. This value will be copied. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>ck</em>&nbsp;</td><td>A pointer to the 16-byte CK. This value will be copied. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>cdid</em>&nbsp;</td><td>A pointer to the 16-byte CDID. This value will be copied. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>An optional host friendly name as defined in the association model spec. Must be a UTF16-LE unicode string. Can be NULL to indicated no name. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>The length othe unicode string. </td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>A unique identifier used to refer to this context that is valid for as long as this context is still in the list. </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="c0009353a8c89d81c0df4d838687136a"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_change" ref="c0009353a8c89d81c0df4d838687136a" args="(dwc_cc_if_t *cc_if, int32_t id, uint8_t *chid, uint8_t *cdid, uint8_t *ck, uint8_t *name, uint8_t length)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dwc_cc_change </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int32_t&nbsp;</td>
- <td class="paramname"> <em>id</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>chid</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>cdid</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>ck</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>name</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t&nbsp;</td>
- <td class="paramname"> <em>length</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Changes the CHID, CK, CDID, or Name values of a connection context in the list, preserving any accumulated statistics.
-<p>
-This would typically be called if the host decideds to change the context with a SET_CONNECTION request.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>cc_if</em>&nbsp;</td><td>The cc_if structure. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>The identifier of the connection context. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>chid</em>&nbsp;</td><td>A pointer to the 16-byte CHID. This value will be copied. NULL indicates no change. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>cdid</em>&nbsp;</td><td>A pointer to the 16-byte CDID. This value will be copied. NULL indicates no change. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>ck</em>&nbsp;</td><td>A pointer to the 16-byte CK. This value will be copied. NULL indicates no change. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>name</em>&nbsp;</td><td>Host friendly name UTF16-LE. NULL indicates no change. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>Length of name. </td></tr>
- </table>
-</dl>
-
-</div>
-</div><p>
-<a class="anchor" name="3c0b5c59eebbb92cededfa36bc8508d5"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_remove" ref="3c0b5c59eebbb92cededfa36bc8508d5" args="(dwc_cc_if_t *cc_if, int32_t id)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dwc_cc_remove </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int32_t&nbsp;</td>
- <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Remove the specified connection context.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>cc_if</em>&nbsp;</td><td>The cc_if structure. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>The identifier of the connection context to remove. </td></tr>
- </table>
-</dl>
-
-</div>
-</div><p>
-<a class="anchor" name="9804503a6ae17fa6650da86d94e3a11d"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_data_for_save" ref="9804503a6ae17fa6650da86d94e3a11d" args="(dwc_cc_if_t *cc_if, unsigned int *length)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint8_t* dwc_cc_data_for_save </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned int *&nbsp;</td>
- <td class="paramname"> <em>length</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Get a binary block of data for the connection context list and attributes.
-<p>
-This data can be used by the OS specific driver to save the connection context list into non-volatile memory.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>cc_if</em>&nbsp;</td><td>The cc_if structure. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>Return the length of the data buffer. </td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>A pointer to the data buffer. The memory for this buffer should be freed with DWC_FREE() after use. </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="0410780d5218fd44169bda226bfca65f"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_restore_from_data" ref="0410780d5218fd44169bda226bfca65f" args="(dwc_cc_if_t *cc_if, uint8_t *data, unsigned int length)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dwc_cc_restore_from_data </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>data</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">unsigned int&nbsp;</td>
- <td class="paramname"> <em>length</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Restore the connection context list from the binary data that was previously returned from a call to dwc_cc_data_for_save.
-<p>
-This can be used by the OS specific driver to load a connection context list from non-volatile memory.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>cc_if</em>&nbsp;</td><td>The cc_if structure. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>data</em>&nbsp;</td><td>The data bytes as returned from dwc_cc_data_for_save. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>length</em>&nbsp;</td><td>The length of the data. </td></tr>
- </table>
-</dl>
-
-</div>
-</div><p>
-<a class="anchor" name="97b48adfc54eb821a1d904d66fa554f1"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_match_chid" ref="97b48adfc54eb821a1d904d66fa554f1" args="(dwc_cc_if_t *cc_if, uint8_t *chid)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t dwc_cc_match_chid </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>chid</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Find the connection context from the specified CHID.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>cc_if</em>&nbsp;</td><td>The cc_if structure. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>chid</em>&nbsp;</td><td>A pointer to the CHID data. </td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>A non-zero identifier of the connection context if the CHID matches. Otherwise returns 0. </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="bae07aa2652e5fad05d5dafa81009846"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_match_cdid" ref="bae07aa2652e5fad05d5dafa81009846" args="(dwc_cc_if_t *cc_if, uint8_t *cdid)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint32_t dwc_cc_match_cdid </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>cdid</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Find the connection context from the specified CDID.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>cc_if</em>&nbsp;</td><td>The cc_if structure. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>cdid</em>&nbsp;</td><td>A pointer to the CDID data. </td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>A non-zero identifier of the connection context if the CHID matches. Otherwise returns 0. </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="07124231ec335379a59eb4c8198da119"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_ck" ref="07124231ec335379a59eb4c8198da119" args="(dwc_cc_if_t *cc_if, int32_t id)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint8_t* dwc_cc_ck </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int32_t&nbsp;</td>
- <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Retrieve the CK from the specified connection context.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>cc_if</em>&nbsp;</td><td>The cc_if structure. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>The identifier of the connection context. </td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>A pointer to the CK data. The memory does not need to be freed. </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="135f9661d688df3be90b57cf8fe0e171"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_chid" ref="135f9661d688df3be90b57cf8fe0e171" args="(dwc_cc_if_t *cc_if, int32_t id)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint8_t* dwc_cc_chid </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int32_t&nbsp;</td>
- <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Retrieve the CHID from the specified connection context.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>cc_if</em>&nbsp;</td><td>The cc_if structure. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>The identifier of the connection context. </td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>A pointer to the CHID data. The memory does not need to be freed. </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="667f32649b4dcd8210bc54a307589162"></a><!-- doxytag: member="dwc_cc.h::dwc_cc_cdid" ref="667f32649b4dcd8210bc54a307589162" args="(dwc_cc_if_t *cc_if, int32_t id)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">uint8_t* dwc_cc_cdid </td>
- <td>(</td>
- <td class="paramtype">dwc_cc_if_t *&nbsp;</td>
- <td class="paramname"> <em>cc_if</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int32_t&nbsp;</td>
- <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Retrieve the CDID from the specified connection context.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>cc_if</em>&nbsp;</td><td>The cc_if structure. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>The identifier of the connection context. </td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>A pointer to the CDID data. The memory does not need to be freed. </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="f90b3442b6c53b3e89c0580e1fb20b8f"></a><!-- doxytag: member="dwc_cc.h::dwc_assoc_is_not_zero_id" ref="f90b3442b6c53b3e89c0580e1fb20b8f" args="(uint8_t *id)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">static unsigned dwc_assoc_is_not_zero_id </td>
- <td>(</td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>id</em> </td>
- <td>&nbsp;)&nbsp;</td>
- <td width="100%"><code> [inline, static]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Checks a buffer for non-zero.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>A pointer to a 16 byte buffer. </td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>true if the 16 byte value is non-zero. </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="8485befd69b4bfbe5e9f13b9b24acda1"></a><!-- doxytag: member="dwc_cc.h::dwc_assoc_is_zero_id" ref="8485befd69b4bfbe5e9f13b9b24acda1" args="(uint8_t *id)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">static unsigned dwc_assoc_is_zero_id </td>
- <td>(</td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>id</em> </td>
- <td>&nbsp;)&nbsp;</td>
- <td width="100%"><code> [inline, static]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Checks a buffer for zero.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>id</em>&nbsp;</td><td>A pointer to a 16 byte buffer. </td></tr>
- </table>
-</dl>
-<dl compact><dt><b>Returns:</b></dt><dd>true if the 16 byte value is zero. </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="46be9c2781971918e4f7d0e19699fe9d"></a><!-- doxytag: member="dwc_cc.h::dwc_print_id_string" ref="46be9c2781971918e4f7d0e19699fe9d" args="(char *buffer, uint8_t *id)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">static int dwc_print_id_string </td>
- <td>(</td>
- <td class="paramtype">char *&nbsp;</td>
- <td class="paramname"> <em>buffer</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>id</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"><code> [inline, static]</code></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Prints an ASCII representation for the 16-byte chid, cdid, or ck, into buffer.
-<p>
-
-</div>
-</div><p>
-<hr size="1"><address style="align: right;"><small>Generated on Tue May 5 02:22:50 2009 for Synopsys DWC Portability and Common Library for UWB by&nbsp;
-<a href="http://www.doxygen.org/index.html">
-<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.7 </small></address>
-</body>
-</html>
View
435 drivers/usb/host/dwc_common_port/doc/html/dwc__crypto_8c.html
@@ -1,435 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
-<title>Synopsys DWC Portability and Common Library for UWB: dwc_crypto.c File Reference</title>
-<link href="doxygen.css" rel="stylesheet" type="text/css">
-<link href="tabs.css" rel="stylesheet" type="text/css">
-</head><body>
-<!-- Generated by Doxygen 1.4.7 -->
-<div class="tabs">
- <ul>
- <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
- <li id="current"><a href="files.html"><span>Files</span></a></li>
- <li><a href="dirs.html"><span>Directories</span></a></li>
- <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
- </ul></div>
-<div class="tabs">
- <ul>
- <li><a href="files.html"><span>File&nbsp;List</span></a></li>
- <li><a href="globals.html"><span>Globals</span></a></li>
- </ul></div>
-<div class="nav">
-<a class="el" href="dir_c13d72e45af28cdc461a5f284d3d36fc.html">dwc_common_port</a></div>
-<h1>dwc_crypto.c File Reference</h1><hr><a name="_details"></a><h2>Detailed Description</h2>
-This file contains the WUSB cryptographic routines.
-<p>
-
-<p>
-<table border="0" cellpadding="0" cellspacing="0">
-<tr><td></td></tr>
-<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="324bdad74366c72c0b42483dd8c3c538"></a><!-- doxytag: member="dwc_crypto.c::dump_bytes" ref="324bdad74366c72c0b42483dd8c3c538" args="(char *name, uint8_t *bytes, int len)" -->
-static void&nbsp;</td><td class="memItemRight" valign="bottom"><b>dump_bytes</b> (char *name, uint8_t *bytes, int len)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="anchor" name="ea0e019e3f682dec4bb775a274196e45"></a><!-- doxytag: member="dwc_crypto.c::show_block" ref="ea0e019e3f682dec4bb775a274196e45" args="(const u8 *blk, const char *prefix, const char *suffix, int a)" -->
-void&nbsp;</td><td class="memItemRight" valign="bottom"><b>show_block</b> (const u8 *blk, const char *prefix, const char *suffix, int a)</td></tr>
-
-<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__crypto_8c.html#b4591bca19d2bfc173d3f38d8a0f04e7">dwc_wusb_aes_encrypt</a> (u8 *src, u8 *key, u8 *dst)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Encrypts an array of bytes using the AES encryption engine. <a href="#b4591bca19d2bfc173d3f38d8a0f04e7"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__crypto_8c.html#ebd0a4f3d48e8a5131125b080d402389">dwc_wusb_cmf</a> (u8 *key, u8 *nonce, char *label, u8 *bytes, int len, u8 *result)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The CCM-MAC-FUNCTION described in section 6.5 of the WUSB spec. <a href="#ebd0a4f3d48e8a5131125b080d402389"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__crypto_8c.html#a44578803c21449b5d98e6275e4a6f5f">dwc_wusb_prf</a> (int prf_len, u8 *key, u8 *nonce, char *label, u8 *bytes, int len, u8 *result)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The PRF function described in section 6.5 of the WUSB spec. <a href="#a44578803c21449b5d98e6275e4a6f5f"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__crypto_8c.html#74ae8ea78ee10c708d7c3e0c12665b0d">dwc_wusb_fill_ccm_nonce</a> (uint16_t haddr, uint16_t daddr, uint8_t *tkid, uint8_t *nonce)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Fills in CCM Nonce per the WUSB spec. <a href="#74ae8ea78ee10c708d7c3e0c12665b0d"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__crypto_8c.html#79af51f4e6140e5a251041879b40ad03">dwc_wusb_gen_nonce</a> (uint16_t addr, uint8_t *nonce)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates a 16-byte cryptographic-grade random number for the Host/Device Nonce. <a href="#79af51f4e6140e5a251041879b40ad03"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__crypto_8c.html#18f5b99bd27d2397550fbd340d39600a">dwc_wusb_gen_key</a> (uint8_t *ccm_nonce, uint8_t *mk, uint8_t *hnonce, uint8_t *dnonce, uint8_t *kck, uint8_t *ptk)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates the Session Key (PTK) and Key Confirmation Key (KCK) per the WUSB spec. <a href="#18f5b99bd27d2397550fbd340d39600a"></a><br></td></tr>
-<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="dwc__crypto_8c.html#ab0a16ae4126032ca99e1fbcaaa7c248">dwc_wusb_gen_mic</a> (uint8_t *ccm_nonce, uint8_t *kck, uint8_t *data, uint8_t *mic)</td></tr>
-
-<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Generates the Message Integrity Code over the Handshake data per the WUSB spec. <a href="#ab0a16ae4126032ca99e1fbcaaa7c248"></a><br></td></tr>
-</table>
-<hr><h2>Function Documentation</h2>
-<a class="anchor" name="b4591bca19d2bfc173d3f38d8a0f04e7"></a><!-- doxytag: member="dwc_crypto.c::dwc_wusb_aes_encrypt" ref="b4591bca19d2bfc173d3f38d8a0f04e7" args="(u8 *src, u8 *key, u8 *dst)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">int dwc_wusb_aes_encrypt </td>
- <td>(</td>
- <td class="paramtype">u8 *&nbsp;</td>
- <td class="paramname"> <em>src</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">u8 *&nbsp;</td>
- <td class="paramname"> <em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">u8 *&nbsp;</td>
- <td class="paramname"> <em>dst</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Encrypts an array of bytes using the AES encryption engine.
-<p>
-If <code>dst</code> == <code>src</code>, then the bytes will be encrypted in-place.<p>
-<dl compact><dt><b>Returns:</b></dt><dd>0 on success, negative error code on error. </dd></dl>
-
-</div>
-</div><p>
-<a class="anchor" name="ebd0a4f3d48e8a5131125b080d402389"></a><!-- doxytag: member="dwc_crypto.c::dwc_wusb_cmf" ref="ebd0a4f3d48e8a5131125b080d402389" args="(u8 *key, u8 *nonce, char *label, u8 *bytes, int len, u8 *result)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dwc_wusb_cmf </td>
- <td>(</td>
- <td class="paramtype">u8 *&nbsp;</td>
- <td class="paramname"> <em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">u8 *&nbsp;</td>
- <td class="paramname"> <em>nonce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">char *&nbsp;</td>
- <td class="paramname"> <em>label</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">u8 *&nbsp;</td>
- <td class="paramname"> <em>bytes</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&nbsp;</td>
- <td class="paramname"> <em>len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">u8 *&nbsp;</td>
- <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-The CCM-MAC-FUNCTION described in section 6.5 of the WUSB spec.
-<p>
-This function takes a data string and returns the encrypted CBC Counter-mode MIC.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>key</em>&nbsp;</td><td>The 128-bit symmetric key. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>nonce</em>&nbsp;</td><td>The CCM nonce. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>label</em>&nbsp;</td><td>The unique 14-byte ASCII text label. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>bytes</em>&nbsp;</td><td>The byte array to be encrypted. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>len</em>&nbsp;</td><td>Length of the byte array. </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>Byte array to receive the 8-byte encrypted MIC. </td></tr>
- </table>
-</dl>
-
-</div>
-</div><p>
-<a class="anchor" name="a44578803c21449b5d98e6275e4a6f5f"></a><!-- doxytag: member="dwc_crypto.c::dwc_wusb_prf" ref="a44578803c21449b5d98e6275e4a6f5f" args="(int prf_len, u8 *key, u8 *nonce, char *label, u8 *bytes, int len, u8 *result)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dwc_wusb_prf </td>
- <td>(</td>
- <td class="paramtype">int&nbsp;</td>
- <td class="paramname"> <em>prf_len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">u8 *&nbsp;</td>
- <td class="paramname"> <em>key</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">u8 *&nbsp;</td>
- <td class="paramname"> <em>nonce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">char *&nbsp;</td>
- <td class="paramname"> <em>label</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">u8 *&nbsp;</td>
- <td class="paramname"> <em>bytes</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">int&nbsp;</td>
- <td class="paramname"> <em>len</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">u8 *&nbsp;</td>
- <td class="paramname"> <em>result</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-The PRF function described in section 6.5 of the WUSB spec.
-<p>
-This function concatenates MIC values returned from dwc_cmf() to create a value of the requested length.<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"></td><td valign="top"><em>prf_len</em>&nbsp;</td><td>Length of the PRF function in bits (64, 128, or 256). </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>key,nonce,label,bytes,len</em>&nbsp;</td><td>Same as for dwc_cmf(). </td></tr>
- <tr><td valign="top"></td><td valign="top"><em>result</em>&nbsp;</td><td>Byte array to receive the result. </td></tr>
- </table>
-</dl>
-
-</div>
-</div><p>
-<a class="anchor" name="74ae8ea78ee10c708d7c3e0c12665b0d"></a><!-- doxytag: member="dwc_crypto.c::dwc_wusb_fill_ccm_nonce" ref="74ae8ea78ee10c708d7c3e0c12665b0d" args="(uint16_t haddr, uint16_t daddr, uint8_t *tkid, uint8_t *nonce)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dwc_wusb_fill_ccm_nonce </td>
- <td>(</td>
- <td class="paramtype">uint16_t&nbsp;</td>
- <td class="paramname"> <em>haddr</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint16_t&nbsp;</td>
- <td class="paramname"> <em>daddr</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>tkid</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>nonce</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Fills in CCM Nonce per the WUSB spec.
-<p>
-<dl compact><dt><b>Parameters:</b></dt><dd>
- <table border="0" cellspacing="2" cellpadding="0">
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>haddr</em>&nbsp;</td><td>Host address. </td></tr>
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>daddr</em>&nbsp;</td><td>Device address. </td></tr>
- <tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>tkid</em>&nbsp;</td><td>Session Key(PTK) identifier. </td></tr>
- <tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>nonce</em>&nbsp;</td><td>Pointer to where the CCM Nonce output is to be written. </td></tr>
- </table>
-</dl>
-
-</div>
-</div><p>
-<a class="anchor" name="79af51f4e6140e5a251041879b40ad03"></a><!-- doxytag: member="dwc_crypto.c::dwc_wusb_gen_nonce" ref="79af51f4e6140e5a251041879b40ad03" args="(uint16_t addr, uint8_t *nonce)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dwc_wusb_gen_nonce </td>
- <td>(</td>
- <td class="paramtype">uint16_t&nbsp;</td>
- <td class="paramname"> <em>addr</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>nonce</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-
-<p>
-Generates a 16-byte cryptographic-grade random number for the Host/Device Nonce.
-<p>
-
-</div>
-</div><p>
-<a class="anchor" name="18f5b99bd27d2397550fbd340d39600a"></a><!-- doxytag: member="dwc_crypto.c::dwc_wusb_gen_key" ref="18f5b99bd27d2397550fbd340d39600a" args="(uint8_t *ccm_nonce, uint8_t *mk, uint8_t *hnonce, uint8_t *dnonce, uint8_t *kck, uint8_t *ptk)" -->
-<div class="memitem">
-<div class="memproto">
- <table class="memname">
- <tr>
- <td class="memname">void dwc_wusb_gen_key </td>
- <td>(</td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>ccm_nonce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>mk</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>hnonce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>dnonce</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>kck</em>, </td>
- </tr>
- <tr>
- <td class="paramkey"></td>
- <td></td>
- <td class="paramtype">uint8_t *&nbsp;</td>
- <td class="paramname"> <em>ptk</em></td><td>&nbsp;</td>
- </tr>
- <tr>
- <td></td>
- <td>)</td>
- <td></td><td></td><td width="100%"></td>
- </tr>
- </table>
-</div>
-<div class="memdoc">
-