Import Usb/UsbBusDxe and Usb/UsbMassStorageDxe into MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3193 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
146
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.h
Normal file
146
MdeModulePkg/Bus/Usb/UsbBusDxe/UsbDesc.h
Normal file
@@ -0,0 +1,146 @@
|
||||
/** @file
|
||||
|
||||
Copyright (c) 2007, Intel Corporation
|
||||
All rights reserved. This program and the accompanying materials
|
||||
are licensed and made available under the terms and conditions of the BSD License
|
||||
which accompanies this distribution. The full text of the license may be found at
|
||||
http://opensource.org/licenses/bsd-license.php
|
||||
|
||||
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
|
||||
|
||||
Module Name:
|
||||
|
||||
UsbDesc.h
|
||||
|
||||
Abstract:
|
||||
|
||||
Manage Usb Descriptor List
|
||||
|
||||
Revision History
|
||||
|
||||
|
||||
**/
|
||||
|
||||
#ifndef _USB_DESCRIPTOR_H_
|
||||
#define _USB_DESCRIPTOR_H_
|
||||
|
||||
enum {
|
||||
USB_MAX_INTERFACE_SETTING = 8,
|
||||
};
|
||||
|
||||
//
|
||||
// The RequestType in EFI_USB_DEVICE_REQUEST is composed of
|
||||
// three fields: One bit direction, 2 bit type, and 5 bit
|
||||
// target.
|
||||
//
|
||||
#define USB_REQUEST_TYPE(Dir, Type, Target) \
|
||||
((UINT8)((((Dir) == EfiUsbDataIn ? 0x01 : 0) << 7) | (Type) | (Target)))
|
||||
|
||||
//
|
||||
// A common header for usb standard descriptor.
|
||||
// Each stand descriptor has a length and type.
|
||||
//
|
||||
#pragma pack(1)
|
||||
typedef struct {
|
||||
UINT8 Len;
|
||||
UINT8 Type;
|
||||
} USB_DESC_HEAD;
|
||||
#pragma pack()
|
||||
|
||||
|
||||
//
|
||||
// Each USB device has a device descriptor. Each device may
|
||||
// have several configures. Each configure contains several
|
||||
// interfaces. Each interface may have several settings. Each
|
||||
// setting has several endpoints.
|
||||
//
|
||||
// EFI_USB_..._DESCRIPTOR must be the first member of the
|
||||
// structure.
|
||||
//
|
||||
typedef struct {
|
||||
EFI_USB_ENDPOINT_DESCRIPTOR Desc;
|
||||
UINT8 Toggle;
|
||||
} USB_ENDPOINT_DESC;
|
||||
|
||||
typedef struct {
|
||||
EFI_USB_INTERFACE_DESCRIPTOR Desc;
|
||||
USB_ENDPOINT_DESC **Endpoints;
|
||||
} USB_INTERFACE_SETTING;
|
||||
|
||||
//
|
||||
// An interface may have several settings. Use a
|
||||
// fixed max number of settings to simplify code.
|
||||
// It should sufice in most environments.
|
||||
//
|
||||
typedef struct {
|
||||
USB_INTERFACE_SETTING* Settings[USB_MAX_INTERFACE_SETTING];
|
||||
UINTN NumOfSetting;
|
||||
UINT8 ActiveIndex; // Index of active setting
|
||||
} USB_INTERFACE_DESC;
|
||||
|
||||
typedef struct {
|
||||
EFI_USB_CONFIG_DESCRIPTOR Desc;
|
||||
USB_INTERFACE_DESC **Interfaces;
|
||||
} USB_CONFIG_DESC;
|
||||
|
||||
typedef struct {
|
||||
EFI_USB_DEVICE_DESCRIPTOR Desc;
|
||||
USB_CONFIG_DESC **Configs;
|
||||
} USB_DEVICE_DESC;
|
||||
|
||||
EFI_STATUS
|
||||
UsbCtrlRequest (
|
||||
IN USB_DEVICE *UsbDev,
|
||||
IN EFI_USB_DATA_DIRECTION Direction,
|
||||
IN UINTN Type,
|
||||
IN UINTN Target,
|
||||
IN UINTN Request,
|
||||
IN UINT16 Value,
|
||||
IN UINT16 Index,
|
||||
IN OUT VOID *Buf,
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
UsbGetMaxPacketSize0 (
|
||||
IN USB_DEVICE *UsbDev
|
||||
);
|
||||
|
||||
VOID
|
||||
UsbFreeDevDesc (
|
||||
IN USB_DEVICE_DESC *DevDesc
|
||||
);
|
||||
|
||||
EFI_USB_STRING_DESCRIPTOR*
|
||||
UsbGetOneString (
|
||||
IN USB_DEVICE *UsbDev,
|
||||
IN UINT8 StringIndex,
|
||||
IN UINT16 LangId
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
UsbBuildDescTable (
|
||||
IN USB_DEVICE *UsbDev
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
UsbSetAddress (
|
||||
IN USB_DEVICE *UsbDev,
|
||||
IN UINT8 Address
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
UsbSetConfig (
|
||||
IN USB_DEVICE *UsbDev,
|
||||
IN UINT8 ConfigIndex
|
||||
);
|
||||
|
||||
EFI_STATUS
|
||||
UsbIoClearFeature (
|
||||
IN EFI_USB_IO_PROTOCOL *UsbIo,
|
||||
IN UINTN Target,
|
||||
IN UINT16 Feature,
|
||||
IN UINT16 Index
|
||||
);
|
||||
#endif
|
Reference in New Issue
Block a user