10 #define TAG_HDA 'bADH'
13 // include Haiku headers
16 #define MAKE_RATE(base, multiply, divide) \
17 ((base == 44100 ? FORMAT_44_1_BASE_RATE : 0) \
18 | ((multiply - 1) << FORMAT_MULTIPLY_RATE_SHIFT) \
19 | ((divide - 1) << FORMAT_DIVIDE_RATE_SHIFT))
21 #define HDAC_INPUT_STREAM_OFFSET(index) \
22 ((index) * HDAC_STREAM_SIZE)
23 #define HDAC_OUTPUT_STREAM_OFFSET(num_input_streams, index) \
24 ((num_input_streams + (index)) * HDAC_STREAM_SIZE)
25 #define HDAC_BIDIR_STREAM_OFFSET(num_input_streams, num_output_streams, index) \
26 ((num_input_streams + num_output_streams \
27 + (index)) * HDAC_STREAM_SIZE)
29 #define ALIGN(size, align) (((size) + align - 1) & ~(align - 1))
35 }RIRB_RESPONSE
, *PRIRB_RESPONSE
;
39 PDEVICE_OBJECT ChildPDO
;
42 }HDA_CODEC_AUDIO_GROUP
, *PHDA_CODEC_AUDIO_GROUP
;
54 ULONG Responses
[MAX_CODEC_RESPONSES
];
57 PHDA_CODEC_AUDIO_GROUP AudioGroups
[HDA_MAX_AUDIO_GROUPS
];
58 ULONG AudioGroupCount
;
60 }HDA_CODEC_ENTRY
, *PHDA_CODEC_ENTRY
;
66 PDEVICE_OBJECT LowerDevice
;
69 PKINTERRUPT Interrupt
;
74 PRIRB_RESPONSE RirbBase
;
77 PVOID StreamPositions
;
79 PHDA_CODEC_ENTRY Codecs
[HDA_MAX_CODECS
+ 1];
81 }HDA_FDO_DEVICE_EXTENSION
, *PHDA_FDO_DEVICE_EXTENSION
;
86 PHDA_CODEC_ENTRY Codec
;
87 PHDA_CODEC_AUDIO_GROUP AudioGroup
;
89 }HDA_PDO_DEVICE_EXTENSION
, *PHDA_PDO_DEVICE_EXTENSION
;
101 ULONG _reserved1
: 8;
103 ULONG _reserved2
: 8;
104 }CODEC_RESPONSE
, *PCODEC_RESPONSE
;
109 IN POOL_TYPE PoolType
,
110 IN SIZE_T NumberOfBytes
);
119 HDA_InterruptService(
120 IN PKINTERRUPT Interrupt
,
121 IN PVOID ServiceContext
);
126 IN PDEVICE_OBJECT DeviceObject
,
131 HDA_FDOQueryBusRelations(
132 IN PDEVICE_OBJECT DeviceObject
,
137 IN PDEVICE_OBJECT DeviceObject
,
138 IN PHDA_CODEC_ENTRY Codec
,
140 OUT PULONG Responses
,
146 HDA_PDOQueryBusInformation(
152 IN PDEVICE_OBJECT DeviceObject
,
156 HDA_PDOHandleQueryDeviceText(
160 HDA_PDOQueryBusDeviceCapabilities(
164 HDA_PDOQueryBusDevicePnpState(
167 /* businterface.cpp */
170 HDA_PDOHandleQueryInterface(
171 IN PDEVICE_OBJECT DeviceObject
,
179 IN PDEVICE_OBJECT DeviceObject
,