ReactOS  0.4.13-dev-443-g10f00f8
hardware.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  _PERIODICFRAMELIST
 
struct  _QETD_TOKEN_BITS
 
struct  _QUEUE_TRANSFER_DESCRIPTOR
 
struct  _END_POINT_CHARACTERISTICS
 
struct  _END_POINT_CAPABILITIES
 
struct  _QUEUE_HEAD
 
struct  _EHCI_USBCMD_CONTENT
 
struct  _EHCI_HCS_CONTENT
 
struct  _EHCI_HCC_CONTENT
 
struct  _EHCI_CAPS
 
struct  EHCI_PORT_STATUS
 

Macros

#define EHCI_CAPLENGTH   0x00
 
#define EHCI_HCIVERSION   0x02
 
#define EHCI_HCSPARAMS   0x04
 
#define EHCI_HCCPARAMS   0x08
 
#define EHCI_HCSP_PORTROUTE   0x0c
 
#define EHCI_ECP_SHIFT   8
 
#define EHCI_ECP_MASK   0xff
 
#define EHCI_LEGSUP_CAPID_MASK   0xff
 
#define EHCI_LEGSUP_CAPID   0x01
 
#define EHCI_LEGSUP_OSOWNED   (1 << 24)
 
#define EHCI_LEGSUP_BIOSOWNED   (1 << 16)
 
#define EHCI_USBCMD   0x00
 
#define EHCI_USBSTS   0x04
 
#define EHCI_USBINTR   0x08
 
#define EHCI_FRINDEX   0x0C
 
#define EHCI_CTRLDSSEGMENT   0x10
 
#define EHCI_PERIODICLISTBASE   0x14
 
#define EHCI_ASYNCLISTBASE   0x18
 
#define EHCI_CONFIGFLAG   0x40
 
#define EHCI_PORTSC   0x44
 
#define EHCI_USBINTR_INTE   0x01
 
#define EHCI_USBINTR_ERR   0x02
 
#define EHCI_USBINTR_PC   0x04
 
#define EHCI_USBINTR_FLROVR   0x08
 
#define EHCI_USBINTR_HSERR   0x10
 
#define EHCI_USBINTR_ASYNC   0x20
 
#define EHCI_STS_INT   0x01
 
#define EHCI_STS_ERR   0x02
 
#define EHCI_STS_PCD   0x04
 
#define EHCI_STS_FLR   0x08
 
#define EHCI_STS_FATAL   0x10
 
#define EHCI_STS_IAA   0x20
 
#define EHCI_STS_HALT   0x1000
 
#define EHCI_STS_RECL   0x2000
 
#define EHCI_STS_PSS   0x4000
 
#define EHCI_STS_ASS   0x8000
 
#define EHCI_ERROR_INT   (EHCI_STS_FATAL | EHCI_STS_ERR)
 
#define EHCI_PRT_CONNECTED   0x01
 
#define EHCI_PRT_CONNECTSTATUSCHANGE   0x02
 
#define EHCI_PRT_ENABLED   0x04
 
#define EHCI_PRT_ENABLEDSTATUSCHANGE   0x08
 
#define EHCI_PRT_OVERCURRENTACTIVE   0x10
 
#define EHCI_PRT_OVERCURRENTCHANGE   0x20
 
#define EHCI_PRT_FORCERESUME   0x40
 
#define EHCI_PRT_SUSPEND   0x80
 
#define EHCI_PRT_RESET   0x100
 
#define EHCI_PRT_LINESTATUSA   0x400
 
#define EHCI_PRT_LINESTATUSB   0x800
 
#define EHCI_PRT_POWER   0x1000
 
#define EHCI_PRT_RELEASEOWNERSHIP   0x2000
 
#define EHCI_PORTSC_DATAMASK   0xffffffd1
 
#define EHCI_IS_LOW_SPEED(x)   (((x) & EHCI_PRT_LINESTATUSA) && !((x) & EHCI_PRT_LINESTATUSB))
 
#define TERMINATE_POINTER   0x01
 
#define PID_CODE_OUT_TOKEN   0x00
 
#define PID_CODE_IN_TOKEN   0x01
 
#define PID_CODE_SETUP_TOKEN   0x02
 
#define DO_START_SPLIT   0x00
 
#define DO_COMPLETE_SPLIT   0x01
 
#define PING_STATE_DO_OUT   0x00
 
#define PING_STATE_DO_PING   0x01
 
#define QH_ENDPOINT_FULLSPEED   0x00
 
#define QH_ENDPOINT_LOWSPEED   0x01
 
#define QH_ENDPOINT_HIGHSPEED   0x02
 
#define QH_TYPE_IDT   0x00
 
#define QH_TYPE_QH   0x02
 
#define QH_TYPE_SITD   0x04
 
#define QH_TYPE_FSTN   0x06
 
#define EHCI_INTERRUPT_ENTRIES_COUNT   (10 + 1)
 
#define EHCI_VFRAMELIST_ENTRIES_COUNT   128
 
#define EHCI_FRAMELIST_ENTRIES_COUNT   1024
 
#define MAX_AVAILABLE_BANDWIDTH   125
 
#define EHCI_QH_CAPS_MULT_SHIFT   30
 
#define EHCI_QH_CAPS_MULT_MASK   0x03
 
#define EHCI_QH_CAPS_PORT_SHIFT   23
 
#define EHCI_QH_CAPS_PORT_MASK   0x7f
 
#define EHCI_QH_CAPS_HUB_SHIFT   16
 
#define EHCI_QH_CAPS_HUB_MASK   0x7f
 
#define EHCI_QH_CAPS_SCM_SHIFT   8
 
#define EHCI_QH_CAPS_SCM_MASK   0xff
 
#define EHCI_QH_CAPS_ISM_SHIFT   0
 
#define EHCI_QH_CAPS_ISM_MASK   0xff
 

Typedefs

typedef struct _PERIODICFRAMELIST PERIODICFRAMELIST
 
typedef struct _PERIODICFRAMELISTPPERIODICFRAMELIST
 
typedef struct _QETD_TOKEN_BITS QETD_TOKEN_BITS
 
typedef struct _QETD_TOKEN_BITSPQETD_TOKEN_BITS
 
typedef struct _QUEUE_TRANSFER_DESCRIPTOR QUEUE_TRANSFER_DESCRIPTOR
 
typedef struct _QUEUE_TRANSFER_DESCRIPTORPQUEUE_TRANSFER_DESCRIPTOR
 
typedef struct _END_POINT_CHARACTERISTICS END_POINT_CHARACTERISTICS
 
typedef struct _END_POINT_CHARACTERISTICSPEND_POINT_CHARACTERISTICS
 
typedef struct _END_POINT_CAPABILITIES END_POINT_CAPABILITIES
 
typedef struct _END_POINT_CAPABILITIESPEND_POINT_CAPABILITIES
 
typedef struct _QUEUE_HEAD QUEUE_HEAD
 
typedef struct _QUEUE_HEADPQUEUE_HEAD
 
typedef struct _EHCI_USBCMD_CONTENT EHCI_USBCMD_CONTENT
 
typedef struct _EHCI_USBCMD_CONTENTPEHCI_USBCMD_CONTENT
 
typedef struct _EHCI_HCS_CONTENT EHCI_HCS_CONTENT
 
typedef struct _EHCI_HCS_CONTENTPEHCI_HCS_CONTENT
 
typedef struct _EHCI_HCC_CONTENT EHCI_HCC_CONTENT
 
typedef struct _EHCI_HCC_CONTENTPEHCI_HCC_CONTENT
 
typedef struct _EHCI_CAPS EHCI_CAPS
 
typedef struct _EHCI_CAPSPEHCI_CAPS
 

Functions

 C_ASSERT (FIELD_OFFSET(QUEUE_TRANSFER_DESCRIPTOR, PhysicalAddr)==0x34)
 
 C_ASSERT (sizeof(END_POINT_CHARACTERISTICS)==4)
 
 C_ASSERT (sizeof(END_POINT_CAPABILITIES)==4)
 
 C_ASSERT (FIELD_OFFSET(QUEUE_HEAD, HorizontalLinkPointer)==0x00)
 
 C_ASSERT (FIELD_OFFSET(QUEUE_HEAD, EndPointCharacteristics)==0x04)
 
 C_ASSERT (FIELD_OFFSET(QUEUE_HEAD, EndPointCapabilities)==0x08)
 
 C_ASSERT (FIELD_OFFSET(QUEUE_HEAD, CurrentLinkPointer)==0xC)
 
 C_ASSERT (FIELD_OFFSET(QUEUE_HEAD, NextPointer)==0x10)
 
 C_ASSERT (FIELD_OFFSET(QUEUE_HEAD, AlternateNextPointer)==0x14)
 
 C_ASSERT (FIELD_OFFSET(QUEUE_HEAD, Token)==0x18)
 
 C_ASSERT (FIELD_OFFSET(QUEUE_HEAD, BufferPointer)==0x1C)
 
 C_ASSERT (FIELD_OFFSET(QUEUE_HEAD, PhysicalAddr)==0x44)
 

Macro Definition Documentation

◆ DO_COMPLETE_SPLIT

#define DO_COMPLETE_SPLIT   0x01

Definition at line 101 of file hardware.h.

◆ DO_START_SPLIT

#define DO_START_SPLIT   0x00

Definition at line 100 of file hardware.h.

◆ EHCI_ASYNCLISTBASE

#define EHCI_ASYNCLISTBASE   0x18

Definition at line 33 of file hardware.h.

◆ EHCI_CAPLENGTH

#define EHCI_CAPLENGTH   0x00

Definition at line 6 of file hardware.h.

◆ EHCI_CONFIGFLAG

#define EHCI_CONFIGFLAG   0x40

Definition at line 34 of file hardware.h.

◆ EHCI_CTRLDSSEGMENT

#define EHCI_CTRLDSSEGMENT   0x10

Definition at line 31 of file hardware.h.

◆ EHCI_ECP_MASK

#define EHCI_ECP_MASK   0xff

Definition at line 17 of file hardware.h.

◆ EHCI_ECP_SHIFT

#define EHCI_ECP_SHIFT   8

Definition at line 16 of file hardware.h.

◆ EHCI_ERROR_INT

#define EHCI_ERROR_INT   (EHCI_STS_FATAL | EHCI_STS_ERR)

Definition at line 62 of file hardware.h.

◆ EHCI_FRAMELIST_ENTRIES_COUNT

#define EHCI_FRAMELIST_ENTRIES_COUNT   1024

Definition at line 312 of file hardware.h.

◆ EHCI_FRINDEX

#define EHCI_FRINDEX   0x0C

Definition at line 30 of file hardware.h.

◆ EHCI_HCCPARAMS

#define EHCI_HCCPARAMS   0x08

Definition at line 9 of file hardware.h.

◆ EHCI_HCIVERSION

#define EHCI_HCIVERSION   0x02

Definition at line 7 of file hardware.h.

◆ EHCI_HCSP_PORTROUTE

#define EHCI_HCSP_PORTROUTE   0x0c

Definition at line 10 of file hardware.h.

◆ EHCI_HCSPARAMS

#define EHCI_HCSPARAMS   0x04

Definition at line 8 of file hardware.h.

◆ EHCI_INTERRUPT_ENTRIES_COUNT

#define EHCI_INTERRUPT_ENTRIES_COUNT   (10 + 1)

Definition at line 310 of file hardware.h.

◆ EHCI_IS_LOW_SPEED

#define EHCI_IS_LOW_SPEED (   x)    (((x) & EHCI_PRT_LINESTATUSA) && !((x) & EHCI_PRT_LINESTATUSB))

Definition at line 83 of file hardware.h.

◆ EHCI_LEGSUP_BIOSOWNED

#define EHCI_LEGSUP_BIOSOWNED   (1 << 16)

Definition at line 21 of file hardware.h.

◆ EHCI_LEGSUP_CAPID

#define EHCI_LEGSUP_CAPID   0x01

Definition at line 19 of file hardware.h.

◆ EHCI_LEGSUP_CAPID_MASK

#define EHCI_LEGSUP_CAPID_MASK   0xff

Definition at line 18 of file hardware.h.

◆ EHCI_LEGSUP_OSOWNED

#define EHCI_LEGSUP_OSOWNED   (1 << 24)

Definition at line 20 of file hardware.h.

◆ EHCI_PERIODICLISTBASE

#define EHCI_PERIODICLISTBASE   0x14

Definition at line 32 of file hardware.h.

◆ EHCI_PORTSC

#define EHCI_PORTSC   0x44

Definition at line 35 of file hardware.h.

◆ EHCI_PORTSC_DATAMASK

#define EHCI_PORTSC_DATAMASK   0xffffffd1

Definition at line 81 of file hardware.h.

◆ EHCI_PRT_CONNECTED

#define EHCI_PRT_CONNECTED   0x01

Definition at line 67 of file hardware.h.

◆ EHCI_PRT_CONNECTSTATUSCHANGE

#define EHCI_PRT_CONNECTSTATUSCHANGE   0x02

Definition at line 68 of file hardware.h.

◆ EHCI_PRT_ENABLED

#define EHCI_PRT_ENABLED   0x04

Definition at line 69 of file hardware.h.

◆ EHCI_PRT_ENABLEDSTATUSCHANGE

#define EHCI_PRT_ENABLEDSTATUSCHANGE   0x08

Definition at line 70 of file hardware.h.

◆ EHCI_PRT_FORCERESUME

#define EHCI_PRT_FORCERESUME   0x40

Definition at line 73 of file hardware.h.

◆ EHCI_PRT_LINESTATUSA

#define EHCI_PRT_LINESTATUSA   0x400

Definition at line 76 of file hardware.h.

◆ EHCI_PRT_LINESTATUSB

#define EHCI_PRT_LINESTATUSB   0x800

Definition at line 77 of file hardware.h.

◆ EHCI_PRT_OVERCURRENTACTIVE

#define EHCI_PRT_OVERCURRENTACTIVE   0x10

Definition at line 71 of file hardware.h.

◆ EHCI_PRT_OVERCURRENTCHANGE

#define EHCI_PRT_OVERCURRENTCHANGE   0x20

Definition at line 72 of file hardware.h.

◆ EHCI_PRT_POWER

#define EHCI_PRT_POWER   0x1000

Definition at line 78 of file hardware.h.

◆ EHCI_PRT_RELEASEOWNERSHIP

#define EHCI_PRT_RELEASEOWNERSHIP   0x2000

Definition at line 79 of file hardware.h.

◆ EHCI_PRT_RESET

#define EHCI_PRT_RESET   0x100

Definition at line 75 of file hardware.h.

◆ EHCI_PRT_SUSPEND

#define EHCI_PRT_SUSPEND   0x80

Definition at line 74 of file hardware.h.

◆ EHCI_QH_CAPS_HUB_MASK

#define EHCI_QH_CAPS_HUB_MASK   0x7f

Definition at line 321 of file hardware.h.

◆ EHCI_QH_CAPS_HUB_SHIFT

#define EHCI_QH_CAPS_HUB_SHIFT   16

Definition at line 320 of file hardware.h.

◆ EHCI_QH_CAPS_ISM_MASK

#define EHCI_QH_CAPS_ISM_MASK   0xff

Definition at line 325 of file hardware.h.

◆ EHCI_QH_CAPS_ISM_SHIFT

#define EHCI_QH_CAPS_ISM_SHIFT   0

Definition at line 324 of file hardware.h.

◆ EHCI_QH_CAPS_MULT_MASK

#define EHCI_QH_CAPS_MULT_MASK   0x03

Definition at line 317 of file hardware.h.

◆ EHCI_QH_CAPS_MULT_SHIFT

#define EHCI_QH_CAPS_MULT_SHIFT   30

Definition at line 316 of file hardware.h.

◆ EHCI_QH_CAPS_PORT_MASK

#define EHCI_QH_CAPS_PORT_MASK   0x7f

Definition at line 319 of file hardware.h.

◆ EHCI_QH_CAPS_PORT_SHIFT

#define EHCI_QH_CAPS_PORT_SHIFT   23

Definition at line 318 of file hardware.h.

◆ EHCI_QH_CAPS_SCM_MASK

#define EHCI_QH_CAPS_SCM_MASK   0xff

Definition at line 323 of file hardware.h.

◆ EHCI_QH_CAPS_SCM_SHIFT

#define EHCI_QH_CAPS_SCM_SHIFT   8

Definition at line 322 of file hardware.h.

◆ EHCI_STS_ASS

#define EHCI_STS_ASS   0x8000

Definition at line 61 of file hardware.h.

◆ EHCI_STS_ERR

#define EHCI_STS_ERR   0x02

Definition at line 52 of file hardware.h.

◆ EHCI_STS_FATAL

#define EHCI_STS_FATAL   0x10

Definition at line 55 of file hardware.h.

◆ EHCI_STS_FLR

#define EHCI_STS_FLR   0x08

Definition at line 54 of file hardware.h.

◆ EHCI_STS_HALT

#define EHCI_STS_HALT   0x1000

Definition at line 58 of file hardware.h.

◆ EHCI_STS_IAA

#define EHCI_STS_IAA   0x20

Definition at line 56 of file hardware.h.

◆ EHCI_STS_INT

#define EHCI_STS_INT   0x01

Definition at line 51 of file hardware.h.

◆ EHCI_STS_PCD

#define EHCI_STS_PCD   0x04

Definition at line 53 of file hardware.h.

◆ EHCI_STS_PSS

#define EHCI_STS_PSS   0x4000

Definition at line 60 of file hardware.h.

◆ EHCI_STS_RECL

#define EHCI_STS_RECL   0x2000

Definition at line 59 of file hardware.h.

◆ EHCI_USBCMD

#define EHCI_USBCMD   0x00

Definition at line 27 of file hardware.h.

◆ EHCI_USBINTR

#define EHCI_USBINTR   0x08

Definition at line 29 of file hardware.h.

◆ EHCI_USBINTR_ASYNC

#define EHCI_USBINTR_ASYNC   0x20

Definition at line 45 of file hardware.h.

◆ EHCI_USBINTR_ERR

#define EHCI_USBINTR_ERR   0x02

Definition at line 41 of file hardware.h.

◆ EHCI_USBINTR_FLROVR

#define EHCI_USBINTR_FLROVR   0x08

Definition at line 43 of file hardware.h.

◆ EHCI_USBINTR_HSERR

#define EHCI_USBINTR_HSERR   0x10

Definition at line 44 of file hardware.h.

◆ EHCI_USBINTR_INTE

#define EHCI_USBINTR_INTE   0x01

Definition at line 40 of file hardware.h.

◆ EHCI_USBINTR_PC

#define EHCI_USBINTR_PC   0x04

Definition at line 42 of file hardware.h.

◆ EHCI_USBSTS

#define EHCI_USBSTS   0x04

Definition at line 28 of file hardware.h.

◆ EHCI_VFRAMELIST_ENTRIES_COUNT

#define EHCI_VFRAMELIST_ENTRIES_COUNT   128

Definition at line 311 of file hardware.h.

◆ MAX_AVAILABLE_BANDWIDTH

#define MAX_AVAILABLE_BANDWIDTH   125

Definition at line 314 of file hardware.h.

◆ PID_CODE_IN_TOKEN

#define PID_CODE_IN_TOKEN   0x01

Definition at line 97 of file hardware.h.

◆ PID_CODE_OUT_TOKEN

#define PID_CODE_OUT_TOKEN   0x00

Definition at line 96 of file hardware.h.

◆ PID_CODE_SETUP_TOKEN

#define PID_CODE_SETUP_TOKEN   0x02

Definition at line 98 of file hardware.h.

◆ PING_STATE_DO_OUT

#define PING_STATE_DO_OUT   0x00

Definition at line 103 of file hardware.h.

◆ PING_STATE_DO_PING

#define PING_STATE_DO_PING   0x01

Definition at line 104 of file hardware.h.

◆ QH_ENDPOINT_FULLSPEED

#define QH_ENDPOINT_FULLSPEED   0x00

Definition at line 161 of file hardware.h.

◆ QH_ENDPOINT_HIGHSPEED

#define QH_ENDPOINT_HIGHSPEED   0x02

Definition at line 163 of file hardware.h.

◆ QH_ENDPOINT_LOWSPEED

#define QH_ENDPOINT_LOWSPEED   0x01

Definition at line 162 of file hardware.h.

◆ QH_TYPE_FSTN

#define QH_TYPE_FSTN   0x06

Definition at line 195 of file hardware.h.

◆ QH_TYPE_IDT

#define QH_TYPE_IDT   0x00

Definition at line 192 of file hardware.h.

◆ QH_TYPE_QH

#define QH_TYPE_QH   0x02

Definition at line 193 of file hardware.h.

◆ QH_TYPE_SITD

#define QH_TYPE_SITD   0x04

Definition at line 194 of file hardware.h.

◆ TERMINATE_POINTER

#define TERMINATE_POINTER   0x01

Definition at line 87 of file hardware.h.

Typedef Documentation

◆ EHCI_CAPS

◆ EHCI_HCC_CONTENT

◆ EHCI_HCS_CONTENT

◆ EHCI_USBCMD_CONTENT

◆ END_POINT_CAPABILITIES

◆ END_POINT_CHARACTERISTICS

◆ PEHCI_CAPS

◆ PEHCI_HCC_CONTENT

◆ PEHCI_HCS_CONTENT

◆ PEHCI_USBCMD_CONTENT

◆ PEND_POINT_CAPABILITIES

◆ PEND_POINT_CHARACTERISTICS

◆ PERIODICFRAMELIST

◆ PPERIODICFRAMELIST

◆ PQETD_TOKEN_BITS

◆ PQUEUE_HEAD

◆ PQUEUE_TRANSFER_DESCRIPTOR

◆ QETD_TOKEN_BITS

◆ QUEUE_HEAD

◆ QUEUE_TRANSFER_DESCRIPTOR

Function Documentation

◆ C_ASSERT() [1/12]

C_ASSERT ( FIELD_OFFSET(QUEUE_TRANSFER_DESCRIPTOR, PhysicalAddr)  = =0x34)

◆ C_ASSERT() [2/12]

C_ASSERT ( sizeof(END_POINT_CHARACTERISTICS = =4)

◆ C_ASSERT() [3/12]

C_ASSERT ( sizeof(END_POINT_CAPABILITIES = =4)

◆ C_ASSERT() [4/12]

C_ASSERT ( FIELD_OFFSET(QUEUE_HEAD, HorizontalLinkPointer)  = =0x00)

◆ C_ASSERT() [5/12]

C_ASSERT ( FIELD_OFFSET(QUEUE_HEAD, EndPointCharacteristics)  = =0x04)

◆ C_ASSERT() [6/12]

C_ASSERT ( FIELD_OFFSET(QUEUE_HEAD, EndPointCapabilities)  = =0x08)

◆ C_ASSERT() [7/12]

C_ASSERT ( FIELD_OFFSET(QUEUE_HEAD, CurrentLinkPointer)  = =0xC)

◆ C_ASSERT() [8/12]

C_ASSERT ( FIELD_OFFSET(QUEUE_HEAD, NextPointer)  = =0x10)

◆ C_ASSERT() [9/12]

C_ASSERT ( FIELD_OFFSET(QUEUE_HEAD, AlternateNextPointer)  = =0x14)

◆ C_ASSERT() [10/12]

C_ASSERT ( FIELD_OFFSET(QUEUE_HEAD, Token = =0x18)

◆ C_ASSERT() [11/12]

C_ASSERT ( FIELD_OFFSET(QUEUE_HEAD, BufferPointer)  = =0x1C)

◆ C_ASSERT() [12/12]

C_ASSERT ( FIELD_OFFSET(QUEUE_HEAD, PhysicalAddr)  = =0x44)