The goldfish audio device implements a virtual sound card with the following properties:
- Stereo output at fixed 44.1 kHz frequency, using signed 16-bit samples. This is mandatory.
- Mono input at fixed 8 kHz frequency, using signed 16-bit samples. This is optional.
The following table defines goldfish audio device registers:
Offset |
Name |
Abstract |
0x00 |
INT_STATUS |
|
0x04 |
INT_ENABLE |
|
0x08 |
SET_WRITE_BUFFER_1 |
W: Set address of first kernel output buffer. |
0x0c |
SET_WRITE_BUFFER_2 |
W: Set address of second kernel output buffer. |
0x10 |
WRITE_BUFFER_1 |
W: Send first kernel buffer samples to output. |
0x14 |
WRITE_BUFFER_2 |
W: Send second kernel buffer samples to output. |
0x18 |
READ_SUPPORTED |
R: Reads 1 if input is supported, 0 otherwise. |
0x1c |
SET_READ_BUFFER |
|
0x20 |
START_READ |
|
0x24 |
READ_BUFFER_AVAILABLE |
|
0x28 |
SET_WRITE_BUFFER_1_HIGH |
# For 64-bit guest CPUs: W: Set high 32 bits of the first kernel output buffer address. |
0x30 |
SET_WRITE_BUFFER_2_HIGH |
# For 64-bit guest CPUs: W: Set high 32 bits of second kernel output buffer address. |
0x34 |
SET_READ_BUFFER_HIGH |
# For 64-bit guest CPUs: W: Set high 32 bits of kernel input buffer address. |