usbc_main.h
メンバ |
説明 |
uhs_ubit8_t usbdev_DevNum; |
デバイス番号 |
uhs_sbit32_t usbdev_DevSpeed; |
デバイスのスピード |
struct usb_device_descriptor * usbdev_DevDescriptor; |
デバイスディスクリプタ |
uhs_ubit8_t * raw_config; |
ゲットディスクリプタ・コンフィグレーション発行時に 受信したデータバッファポインタ |
struct drv_usb_configuration_descriptor * Drv_ConfDescriptor; |
コンフィグレーションディスクリプタ |
uhs_ubit32_t usbdev_EpMaxpktIn[16]; |
各エンドポイントのマックスパケットサイズ |
uhs_ubit32_t usbdev_EpMaxpktOut[16]; |
各エンドポイントのマックスパケットサイズ |
uhs_ubit16_t usbdev_EpHalt[2]; |
各エンドポイントのHALT状態 各ビットをフラグとして使用 [0]・・・アウトエンドポイント [1]・・・インエンドポイント |
uhs_ubit16_t usbdev_EpToggle[2]; |
各エンドポイントのHALT状態 各ビットをフラグとして使用 [0]・・・アウトエンドポイント [1]・・・インエンドポイント |
struct usbd_usb_deviceinfo * usbdev_UpperHub; |
上位ハブのデバイス構造体アドレス |
struct usbd_usb_deviceinfo * usbdev_LowerHub[USB_MAX_LOWER_DEV+1]; |
ハブの下位デバイス構造体アドレス [1]-[n]がポートに対応 |
uhs_ubit8_t usbdev_LanguageId[2]; |
言語ID保存バッファ |
uhs_sbit8_t * usbdev_StringManu; |
ベンダ情報格納バッファアドレス |
uhs_sbit8_t * usbdev_StringProduct; |
製造番号格納バッファアドレス |
uhs_sbit8_t * usbdev_StringSerial; |
シリアル番号格納バッファアドレス |
uhs_ubit8_t usbdev_TotalConfig; |
全コンフィグ数 |
uhs_ubit8_t usbdev_ActConfig; |
現在設定されているコンフィグレーション番号 |
void * drv_info; |
ドライバ情報格納バッファポインタ ⇒ unknown device はNULL |
struct hcd_info * hcd_info; |
接続元のHCD情報 |
void * hc_context; |
HCD固有データ格納 |
kernel_context_t usbdev_sem; |
USBデバイス保護用セマフォ |
kernel_context_t usbdev_mbx; |
コントロール転送用メールボックス |
uhs_boolean_t connect_status; |
接続状態ステータス |
void * context; |
コンテキストデータ格納 |
struct split_infomation split_info; |
split infomation |
USBデバイス管理用構造体 (USBデバイス接続時に生成する情報)
USB HostはUSBペリフェラルデバイスの情報を、接続デバイス毎に本構造体を生成し管理します。
また、デバイス接続時・切断時にクラスドライバへのコールバックの引数として本構造体は使われます。
クラスドライバはデバイス接続時のコールバックで受け取った本構造体をクラスドライバ内部で保持し、 各APIの引数として直接、またはUSBコントロールブロックのメンバ等として間接的に使用します。
クラスドライバはデバイス接続時のコールバックで受け取った本構造体を解放する事を禁止します。 また、メンバへの書き込みも禁止です。
生成タイミング : デバイス接続時
削除タイミング : デバイス切断時