10 #define AC97_VENDOR 0x8086
11 #define AC97_DEVICE 0x2415
14 uint32_t reserved : 19;
19 #define AC97_MIN_RATE 8000
20 #define AC97_MAX_RATE 48000
22 #define NAM_RESET 0x00
23 #define NAM_SET_MASTER_VOLUME 0x02
24 #define NAM_SET_PCM_VOLUME 0x18
25 #define NAM_EXTENDED_ID 0x28
26 #define NAM_EXTENDED_AUDIO 0x2A
27 #define NAM_SAMPLE_RATE 0x2C
29 #define NABM_PCM_OUT 0x10
30 #define NABM_GLOBAL_CONTROL 0x2C
31 #define NABM_GLOBAL_STATUS 0x30
35 uint16_t sample_count;
40 void ac97_set_master_volume(uint8_t left, uint8_t right,
bool mute);
43 void ac97_set_pcm_volume(uint8_t right, uint8_t left,
bool mute);
44 void ac97_set_pcm_sample_rate(uint16_t sample_rate);
45 void ac97_reset_channel();
46 void ac97_clear_status_register();
47 void ac97_update_bdl();
48 void ac97_update_lvi(uint8_t index);
49 void ac97_set_play_sound(
bool play);
52 void ac97_WriteAll(
void* buffer,
size_t size);
53 bool ac97_is_initialized();
Основные определения ядра