<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.13">
  <compounddef id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t" kind="struct" language="C++" prot="public">
    <compoundname>USBD_API_INIT_PARAM_T</compoundname>
    <includes refid="mw__usbd__core_8h" local="no">mw_usbd/mw_usbd_core.h</includes>
      <sectiondef kind="public-attrib">
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a2200b18c707f4547fe8dbe465d5a643a" prot="public" static="no" mutable="no">
        <type>uint32_t</type>
        <definition>uint32_t USBD_API_INIT_PARAM_T::usb_reg_base</definition>
        <argsstring></argsstring>
        <name>usb_reg_base</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>USB device controller&apos;s base register address. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="152" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="152" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a8739f30e4b9914535d92ca2ce89aa7d6" prot="public" static="no" mutable="no">
        <type>uint32_t</type>
        <definition>uint32_t USBD_API_INIT_PARAM_T::mem_base</definition>
        <argsstring></argsstring>
        <name>mem_base</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Base memory location from where the stack can allocate data and buffers. <simplesect kind="note"><para>The memory address set in this field should be accessible by USB DMA controller. Also this value should be aligned on 2048 byte boundary. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="153" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="153" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a746219ea1a82b356ec966df059824f72" prot="public" static="no" mutable="no">
        <type>uint32_t</type>
        <definition>uint32_t USBD_API_INIT_PARAM_T::mem_size</definition>
        <argsstring></argsstring>
        <name>mem_size</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>The size of memory buffer which stack can use. <simplesect kind="note"><para>The <emphasis>mem_size</emphasis> should be greater than the size returned by USBD_HW_API::GetMemSize() routine. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="158" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="158" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1af9eae0114be0454c4cce831715faf585" prot="public" static="no" mutable="no">
        <type>uint8_t</type>
        <definition>uint8_t USBD_API_INIT_PARAM_T::max_num_ep</definition>
        <argsstring></argsstring>
        <name>max_num_ep</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>max number of endpoints supported by the USB device controller instance (specified by <emphasis>usb_reg_base</emphasis> field) to which this instance of stack is attached. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="161" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="161" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a5112f6d5185faf2b123503fadb262ce8" prot="public" static="no" mutable="no">
        <type>uint8_t</type>
        <definition>uint8_t USBD_API_INIT_PARAM_T::high_speed_capable</definition>
        <argsstring></argsstring>
        <name>high_speed_capable</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Specifies USB device controller&apos;s speed capability. 0 : Full-speed only; 1 : High speed capable </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="165" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="165" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a7ff0cb026b4c36385eca900efa5bc4f4" prot="public" static="no" mutable="no">
        <type>uint8_t</type>
        <definition>uint8_t USBD_API_INIT_PARAM_T::double_buffer</definition>
        <argsstring></argsstring>
        <name>double_buffer</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Specifies whether low-level HW driver to use double buffering for EP transfers. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="167" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="167" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a4495d018638cbf2d3df018d6eaa741a5" prot="public" static="no" mutable="no">
        <type>uint8_t</type>
        <definition>uint8_t USBD_API_INIT_PARAM_T::pad0[1]</definition>
        <argsstring>[1]</argsstring>
        <name>pad0</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="168" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="168" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a8e660f6bf25cdeefe2cec011fabe212c" prot="public" static="no" mutable="no">
        <type><ref refid="group___u_s_b_d___core_1ga0404ce046312aa5c798cc4a05c417e46" kindref="member">USB_CB_T</ref></type>
        <definition>USB_CB_T USBD_API_INIT_PARAM_T::USB_Reset_Event</definition>
        <argsstring></argsstring>
        <name>USB_Reset_Event</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Event for USB interface reset. This event fires when the USB host requests that the device reset its interface. This event fires after the control endpoint has been automatically configured by the library. <linebreak/>
<simplesect kind="note"><para>This event is called from USB_ISR context and hence is time-critical. Having delays in this callback will prevent the device from enumerating correctly or operate properly. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="178" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="178" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1aaf95eb8e3001c6da1ef8d72b26cdc1aa" prot="public" static="no" mutable="no">
        <type><ref refid="group___u_s_b_d___core_1ga0404ce046312aa5c798cc4a05c417e46" kindref="member">USB_CB_T</ref></type>
        <definition>USB_CB_T USBD_API_INIT_PARAM_T::USB_Suspend_Event</definition>
        <argsstring></argsstring>
        <name>USB_Suspend_Event</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Event for USB suspend. This event fires when the USB host suspends the device by halting its transmission of Start Of Frame pulses to the device. This is generally hooked in order to move the device over to a low power state until the host wakes up the device. <linebreak/>
<simplesect kind="note"><para>This event is called from USB_ISR context and hence is time-critical. Having delays in this callback will cause other system issues. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="187" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="187" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1ab58c48d9bfad77e56ef9ca73b7fc7e82" prot="public" static="no" mutable="no">
        <type><ref refid="group___u_s_b_d___core_1ga0404ce046312aa5c798cc4a05c417e46" kindref="member">USB_CB_T</ref></type>
        <definition>USB_CB_T USBD_API_INIT_PARAM_T::USB_Resume_Event</definition>
        <argsstring></argsstring>
        <name>USB_Resume_Event</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Event for USB wake up or resume. This event fires when a the USB device interface is suspended and the host wakes up the device by supplying Start Of Frame pulses. This is generally hooked to pull the user application out of a low power state and back into normal operating mode. <linebreak/>
<simplesect kind="note"><para>This event is called from USB_ISR context and hence is time-critical. Having delays in this callback will cause other system issues. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="198" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="198" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a17205439f8d1d4b4277e27a1f0e962ac" prot="public" static="no" mutable="no">
        <type><ref refid="group___u_s_b_d___core_1ga0404ce046312aa5c798cc4a05c417e46" kindref="member">USB_CB_T</ref></type>
        <definition>USB_CB_T USBD_API_INIT_PARAM_T::reserved_sbz</definition>
        <argsstring></argsstring>
        <name>reserved_sbz</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Reserved parameter should be set to zero. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="201" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="201" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1af2042bc4188d6ff6e1e56f419d6c6cae" prot="public" static="no" mutable="no">
        <type><ref refid="group___u_s_b_d___core_1ga0404ce046312aa5c798cc4a05c417e46" kindref="member">USB_CB_T</ref></type>
        <definition>USB_CB_T USBD_API_INIT_PARAM_T::USB_SOF_Event</definition>
        <argsstring></argsstring>
        <name>USB_SOF_Event</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Event for USB Start Of Frame detection, when enabled. This event fires at the start of each USB frame, once per millisecond in full-speed mode or once per 125 microseconds in high-speed mode, and is synchronized to the USB bus.</para><para>This event is time-critical; it is run once per millisecond (full-speed mode) and thus long handlers will significantly degrade device performance. This event should only be enabled when needed to reduce device wake-ups.</para><para><simplesect kind="note"><para>This event is not normally active - it must be manually enabled and disabled via the USB interrupt register. <linebreak/>
<linebreak/>
</para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="215" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="215" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a741fd1c3d79894a4191c0155a9bd3022" prot="public" static="no" mutable="no">
        <type><ref refid="group___u_s_b_d___core_1ga7df622c61ebb152b83dd5972ac789b28" kindref="member">USB_PARAM_CB_T</ref></type>
        <definition>USB_PARAM_CB_T USBD_API_INIT_PARAM_T::USB_WakeUpCfg</definition>
        <argsstring></argsstring>
        <name>USB_WakeUpCfg</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Event for remote wake-up configuration, when enabled. This event fires when the USB host request the device to configure itself for remote wake-up capability. The USB host sends this request to device which report remote wake-up capable in their device descriptors, before going to low-power state. The application layer should implement this callback if they have any special on board circuit to trigger remote wake up event. Also application can use this callback to differentiate the following SUSPEND event is caused by cable plug-out or host SUSPEND request. The device can wake-up host only after receiving this callback and remote wake-up feature is enabled by host. To signal remote wake-up the device has to generate resume signaling on bus by calling usapi.hw-&gt;WakeUp() routine.</para><para><linebreak/>
<linebreak/>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param1</parametername>
</parameternamelist>
<parameterdescription>
<para>When 0 - Clear the wake-up configuration, 1 - Enable the wake-up configuration. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The call back should return <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="232" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="232" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1aeccf0e29292aea05e398ff2d7f4c8990" prot="public" static="no" mutable="no">
        <type><ref refid="group___u_s_b_d___core_1ga7df622c61ebb152b83dd5972ac789b28" kindref="member">USB_PARAM_CB_T</ref></type>
        <definition>USB_PARAM_CB_T USBD_API_INIT_PARAM_T::USB_Power_Event</definition>
        <argsstring></argsstring>
        <name>USB_Power_Event</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Reserved parameter should be set to zero. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="235" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="235" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a127b313434a74ef5ad6994d72c40e92e" prot="public" static="no" mutable="no">
        <type><ref refid="group___u_s_b_d___core_1ga7df622c61ebb152b83dd5972ac789b28" kindref="member">USB_PARAM_CB_T</ref></type>
        <definition>USB_PARAM_CB_T USBD_API_INIT_PARAM_T::USB_Error_Event</definition>
        <argsstring></argsstring>
        <name>USB_Error_Event</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Event for error condition. This event fires when USB device controller detect an error condition in the system.</para><para><linebreak/>
<linebreak/>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param1</parametername>
</parameternamelist>
<parameterdescription>
<para>USB device interrupt status register. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The call back should return <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="245" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="245" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1aa99c9b6ada00d0246878a2a392ab76f9" prot="public" static="no" mutable="no">
        <type><ref refid="group___u_s_b_d___core_1ga0404ce046312aa5c798cc4a05c417e46" kindref="member">USB_CB_T</ref></type>
        <definition>USB_CB_T USBD_API_INIT_PARAM_T::USB_Configure_Event</definition>
        <argsstring></argsstring>
        <name>USB_Configure_Event</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Event for USB configuration number changed. This event fires when a the USB host changes the selected configuration number. On receiving configuration change request from host, the stack enables/configures the endpoints needed by the new configuration before calling this callback function. <linebreak/>
<simplesect kind="note"><para>This event is called from USB_ISR context and hence is time-critical. Having delays in this callback will prevent the device from enumerating correctly or operate properly. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="257" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="257" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1adf5dbf583a9517bb8bf109f7483bc894" prot="public" static="no" mutable="no">
        <type><ref refid="group___u_s_b_d___core_1ga0404ce046312aa5c798cc4a05c417e46" kindref="member">USB_CB_T</ref></type>
        <definition>USB_CB_T USBD_API_INIT_PARAM_T::USB_Interface_Event</definition>
        <argsstring></argsstring>
        <name>USB_Interface_Event</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Event for USB interface setting changed. This event fires when a the USB host changes the interface setting to one of alternate interface settings. On receiving interface change request from host, the stack enables/configures the endpoints needed by the new alternate interface setting before calling this callback function. <linebreak/>
<simplesect kind="note"><para>This event is called from USB_ISR context and hence is time-critical. Having delays in this callback will prevent the device from enumerating correctly or operate properly. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="268" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="268" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a52e28e7ebed0bc27189cfbec8c4c64f9" prot="public" static="no" mutable="no">
        <type><ref refid="group___u_s_b_d___core_1ga0404ce046312aa5c798cc4a05c417e46" kindref="member">USB_CB_T</ref></type>
        <definition>USB_CB_T USBD_API_INIT_PARAM_T::USB_Feature_Event</definition>
        <argsstring></argsstring>
        <name>USB_Feature_Event</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Event for USB feature changed. This event fires when a the USB host send set/clear feature request. The stack handles this request for USB_FEATURE_REMOTE_WAKEUP, USB_FEATURE_TEST_MODE and USB_FEATURE_ENDPOINT_STALL features only. On receiving feature request from host, the stack handle the request appropriately and then calls this callback function. <linebreak/>
<simplesect kind="note"><para>This event is called from USB_ISR context and hence is time-critical. Having delays in this callback will prevent the device from enumerating correctly or operate properly. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="279" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="279" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1afc9bf6617c5952cb1b4f0df5424fa08a" prot="public" static="no" mutable="no">
        <type>uint32_t(*</type>
        <definition>uint32_t(* USBD_API_INIT_PARAM_T::virt_to_phys) (void *vaddr)</definition>
        <argsstring>)(void *vaddr)</argsstring>
        <name>virt_to_phys</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Reserved parameter for future use. should be set to zero. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="283" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="283" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1ab7e7bc3d75328ee6b6f5efea2424bfb7" prot="public" static="no" mutable="no">
        <type>void(*</type>
        <definition>void(* USBD_API_INIT_PARAM_T::cache_flush) (uint32_t *start_adr, uint32_t *end_adr)</definition>
        <argsstring>)(uint32_t *start_adr, uint32_t *end_adr)</argsstring>
        <name>cache_flush</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Reserved parameter for future use. should be set to zero. </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="285" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="285" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1ae85b7b1b21a0258a14ef7bd4cb7cab94" prot="public" static="no" mutable="no">
        <type>uint32_t</type>
        <definition>uint32_t USBD_API_INIT_PARAM_T::lpm_setting</definition>
        <argsstring></argsstring>
        <name>lpm_setting</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Configurable LPM setting </para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="286" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="286" bodyend="-1"/>
      </memberdef>
      <memberdef kind="variable" id="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a8e4feb7ce949d298a60dbcd246332e7e" prot="public" static="no" mutable="no">
        <type><ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref>(*</type>
        <definition>ErrorCode_t(* USBD_API_INIT_PARAM_T::USB_ReqGetStringDesc) (USBD_HANDLE_T hUsb, USB_SETUP_PACKET *setupPacket, uint8_t **pD)</definition>
        <argsstring>)(USBD_HANDLE_T hUsb, USB_SETUP_PACKET *setupPacket, uint8_t **pD)</argsstring>
        <name>USB_ReqGetStringDesc</name>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para>Call back function to handle get string descriptor request.</para><para>This callback is invoked by stack when get string descriptor request is received. If callback returns with pD pointing to NULL, then the stack uses <emphasis>string_desc</emphasis> descriptor array provided during initialization to find the string. This interface provides mechanism to override the stack handler for string desriptor and helps in handling dis-contiguous string index descriptor requests. For example Windows host request string descriptor at index 0xEE to see if the devie supports Microsoft defined OS descriptors. Also the interface could be used to support multi-language strings.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hUsb</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle to the USB device stack. </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">setupPacket</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to setup packet.<itemizedlist>
<listitem><para>setupPacket-&gt;wIndex field specifies the Language ID for string descriptors.</para></listitem><listitem><para>SetupPacket.wValue.WB.L field specifies the index of the requested string descriptor. </para></listitem></itemizedlist>
</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">pD</parametername>
</parameternamelist>
<parameterdescription>
<para>Double Pointer to string descriptor which is updated in the function. The pointed data should persist for application scope. Set the pointer to NULL if you want stack to handle the request. </para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Returns <ref refid="error_8h_1a905255056c349318139d94aa4523d516" kindref="member">ErrorCode_t</ref> type to indicate success or error condition. </para></simplesect>
<parameterlist kind="retval"><parameteritem>
<parameternamelist>
<parametername>LPC_OK</parametername>
</parameternamelist>
<parameterdescription>
<para>On success </para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ERR_USBD_INVALID_REQ</parametername>
</parameternamelist>
<parameterdescription>
<para>If application thinks the request is invalid. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="mw_usbd/mw_usbd_core.h" line="306" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="306" bodyend="-1"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>USB device stack initialization parameter data structure. </para>    </briefdescription>
    <detaileddescription>
<para>This data structure is used to pass initialization parameters to the USB device stack&apos;s init function. </para>    </detaileddescription>
    <location file="mw_usbd/mw_usbd_core.h" line="151" column="1" bodyfile="mw_usbd/mw_usbd_core.h" bodystart="151" bodyend="307"/>
    <listofallmembers>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1ab7e7bc3d75328ee6b6f5efea2424bfb7" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>cache_flush</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a7ff0cb026b4c36385eca900efa5bc4f4" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>double_buffer</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a5112f6d5185faf2b123503fadb262ce8" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>high_speed_capable</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1ae85b7b1b21a0258a14ef7bd4cb7cab94" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>lpm_setting</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1af9eae0114be0454c4cce831715faf585" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>max_num_ep</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a8739f30e4b9914535d92ca2ce89aa7d6" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>mem_base</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a746219ea1a82b356ec966df059824f72" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>mem_size</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a4495d018638cbf2d3df018d6eaa741a5" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>pad0</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a17205439f8d1d4b4277e27a1f0e962ac" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>reserved_sbz</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1aa99c9b6ada00d0246878a2a392ab76f9" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>USB_Configure_Event</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a127b313434a74ef5ad6994d72c40e92e" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>USB_Error_Event</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a52e28e7ebed0bc27189cfbec8c4c64f9" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>USB_Feature_Event</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1adf5dbf583a9517bb8bf109f7483bc894" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>USB_Interface_Event</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1aeccf0e29292aea05e398ff2d7f4c8990" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>USB_Power_Event</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a2200b18c707f4547fe8dbe465d5a643a" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>usb_reg_base</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a8e4feb7ce949d298a60dbcd246332e7e" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>USB_ReqGetStringDesc</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a8e660f6bf25cdeefe2cec011fabe212c" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>USB_Reset_Event</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1ab58c48d9bfad77e56ef9ca73b7fc7e82" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>USB_Resume_Event</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1af2042bc4188d6ff6e1e56f419d6c6cae" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>USB_SOF_Event</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1aaf95eb8e3001c6da1ef8d72b26cdc1aa" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>USB_Suspend_Event</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1a741fd1c3d79894a4191c0155a9bd3022" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>USB_WakeUpCfg</name></member>
      <member refid="struct_u_s_b_d___a_p_i___i_n_i_t___p_a_r_a_m___t_1afc9bf6617c5952cb1b4f0df5424fa08a" prot="public" virt="non-virtual"><scope>USBD_API_INIT_PARAM_T</scope><name>virt_to_phys</name></member>
    </listofallmembers>
  </compounddef>
</doxygen>
