ReactOS 0.4.16-dev-2293-g4d8327b
regfuncs.h
Go to the documentation of this file.
1static inline UINT8 read8(PVOID addr) {
3}
4
5static inline void write8(PVOID addr, UINT8 data) {
7}
8
9static inline UINT16 read16(PVOID addr) {
11}
12
13static inline void write16(PVOID addr, UINT16 data) {
15}
16
17static inline UINT32 read32(PVOID addr) {
19}
20
21static inline void write32(PVOID addr, UINT32 data) {
23}
24
25static inline void pci_read_cfg_byte(PBUS_INTERFACE_STANDARD pciInterface, UINT reg, BYTE* data) {
26 pciInterface->GetBusData(pciInterface->Context, PCI_WHICHSPACE_CONFIG, data, reg, sizeof(BYTE));
27}
28
29static inline void pci_read_cfg_dword(PBUS_INTERFACE_STANDARD pciInterface, UINT reg, UINT32* data) {
30 pciInterface->GetBusData(pciInterface->Context, PCI_WHICHSPACE_CONFIG, data, reg, sizeof(UINT32));
31}
32
33static inline void pci_write_cfg_byte(PBUS_INTERFACE_STANDARD pciInterface, UINT reg, BYTE data) {
34 pciInterface->SetBusData(pciInterface->Context, PCI_WHICHSPACE_CONFIG, &data, reg, sizeof(BYTE));
35}
36
37static inline void pci_write_cfg_dword(PBUS_INTERFACE_STANDARD pciInterface, UINT reg, UINT32 data) {
38 pciInterface->GetBusData(pciInterface->Context, PCI_WHICHSPACE_CONFIG, &data, reg, sizeof(UINT32));
39}
40
41static inline void update_pci_byte(PBUS_INTERFACE_STANDARD pciInterface, UINT reg, BYTE mask, BYTE val) {
42 BYTE data;
43 pci_read_cfg_byte(pciInterface, reg, &data);
44 data &= ~mask;
45 data |= (val & mask);
46 pci_write_cfg_byte(pciInterface, reg, data);
47}
48
49#define HDA_RATE(base, mult, div) \
50 (AC_FMT_BASE_##base##K | (((mult) - 1) << AC_FMT_MULT_SHIFT) | \
51 (((div) - 1) << AC_FMT_DIV_SHIFT))
52
53#define hda_read8(ctx, reg) read8((ctx)->m_BAR0.Base.baseptr + HDA_REG_##reg)
54#define hda_write8(ctx, reg, data) write8((ctx)->m_BAR0.Base.baseptr + HDA_REG_##reg, data)
55#define hda_update8(ctx, reg, mask, val) hda_write8(ctx, reg, (hda_read8(ctx, reg) & ~(mask)) | (val))
56#define hda_read16(ctx, reg) read16((ctx)->m_BAR0.Base.baseptr + HDA_REG_##reg)
57#define hda_write16(ctx, reg, data) write16((ctx)->m_BAR0.Base.baseptr + HDA_REG_##reg, data)
58#define hda_update16(ctx, reg, mask, val) hda_write16(ctx, reg, (hda_read16(ctx, reg) & ~(mask)) | (val))
59#define hda_read32(ctx, reg) read32((ctx)->m_BAR0.Base.baseptr + HDA_REG_##reg)
60#define hda_write32(ctx, reg, data) write32((ctx)->m_BAR0.Base.baseptr + HDA_REG_##reg, data)
61#define hda_update32(ctx, reg, mask, val) hda_write32(ctx, reg, (hda_read32(ctx, reg) & ~(mask)) | (val))
62
63#define stream_read8(ctx, reg) read8((ctx)->sdAddr + HDA_REG_##reg)
64#define stream_write8(ctx, reg, data) write8((ctx)->sdAddr + HDA_REG_##reg, data)
65#define stream_update8(ctx, reg, mask, val) stream_write8(ctx, reg, (stream_read8(ctx, reg) & ~(mask)) | (val))
66#define stream_read16(ctx, reg) read16((ctx)->sdAddr + HDA_REG_##reg)
67#define stream_write16(ctx, reg, data) write16((ctx)->sdAddr + HDA_REG_##reg, data)
68#define stream_update16(ctx, reg, mask, val) stream_write16(ctx, reg, (stream_read16(ctx, reg) & ~(mask)) | (val))
69#define stream_read32(ctx, reg) read32((ctx)->sdAddr + HDA_REG_##reg)
70#define stream_write32(ctx, reg, data) write32((ctx)->sdAddr + HDA_REG_##reg, data)
71#define stream_update32(ctx, reg, mask, val) stream_write32(ctx, reg, (stream_read32(ctx, reg) & ~(mask)) | (val))
72
73/* update register macro */
74#define hdac_update32(addr, reg, mask, val) \
75 write32(addr + reg, ((read32(addr + reg) & ~(mask)) | (val)))
76
77#define hdac_update16(addr, reg, mask, val) \
78 write16(addr + reg,((read16(addr + reg) & ~(mask)) | (val)))
unsigned short UINT16
Definition: actypes.h:129
unsigned char UINT8
Definition: actypes.h:128
#define WRITE_REGISTER_USHORT(r, v)
Definition: arm.h:14
#define READ_REGISTER_USHORT(r)
Definition: arm.h:13
#define WRITE_REGISTER_ULONG(r, v)
Definition: arm.h:11
#define READ_REGISTER_ULONG(r)
Definition: arm.h:10
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLenum GLint GLuint mask
Definition: glext.h:6028
GLenum const GLvoid * addr
Definition: glext.h:9621
GLuint GLfloat * val
Definition: glext.h:7180
static int reg
Definition: i386-dis.c:1290
unsigned int UINT
Definition: ndis.h:50
unsigned short USHORT
Definition: pedump.c:61
static void pci_write_cfg_dword(PBUS_INTERFACE_STANDARD pciInterface, UINT reg, UINT32 data)
Definition: regfuncs.h:37
static void write32(PVOID addr, UINT32 data)
Definition: regfuncs.h:21
static void write8(PVOID addr, UINT8 data)
Definition: regfuncs.h:5
static UINT8 read8(PVOID addr)
Definition: regfuncs.h:1
static void pci_read_cfg_byte(PBUS_INTERFACE_STANDARD pciInterface, UINT reg, BYTE *data)
Definition: regfuncs.h:25
static UINT16 read16(PVOID addr)
Definition: regfuncs.h:9
static void pci_write_cfg_byte(PBUS_INTERFACE_STANDARD pciInterface, UINT reg, BYTE data)
Definition: regfuncs.h:33
static void write16(PVOID addr, UINT16 data)
Definition: regfuncs.h:13
static void pci_read_cfg_dword(PBUS_INTERFACE_STANDARD pciInterface, UINT reg, UINT32 *data)
Definition: regfuncs.h:29
static UINT32 read32(PVOID addr)
Definition: regfuncs.h:17
static void update_pci_byte(PBUS_INTERFACE_STANDARD pciInterface, UINT reg, BYTE mask, BYTE val)
Definition: regfuncs.h:41
PGET_SET_DEVICE_DATA SetBusData
Definition: iotypes.h:915
PGET_SET_DEVICE_DATA GetBusData
Definition: iotypes.h:916
uint32_t * PULONG
Definition: typedefs.h:59
uint16_t * PUSHORT
Definition: typedefs.h:56
uint32_t UINT32
Definition: typedefs.h:59
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
NTKERNELAPI VOID NTAPI WRITE_REGISTER_UCHAR(IN PUCHAR Register, IN UCHAR Value)
NTKERNELAPI UCHAR NTAPI READ_REGISTER_UCHAR(IN PUCHAR Register)
#define PCI_WHICHSPACE_CONFIG
Definition: iotypes.h:3646
unsigned char UCHAR
Definition: xmlstorage.h:181
unsigned char BYTE
Definition: xxhash.c:193