Solaris DDI specific (Solaris DDI)
An audio_engine_ops structure defines vectors that an audio driver exports to the Sun audio framework.
One such vector is used for each DMA or PIO engine (sometimes referred to as a “stream”) supported on the device.
The audio framework provides the following synchronization guarantees for audio engines:
only one thread will be executing an audio engine entry point for a given audio device at any one time
no threads will be executing any audio engine entry points for a given audio device if that device is suspended. See audio_dev_suspend(9F).
Each entry point receives as its first argument the driver private state that was registered with audio_engine_set_private(9F).
int audio_engine_version; /* version number */ int (*audio_engine_open)(); /* open engine */ void (*audio_engine_close)(); /* close engine */ int (*audio_engine_start)(); /* start engine */ void (*audio_engine_stop)(); /* stop engine */ uint64_t (*audio_engine_count)(); /* get frame count */ int (*audio_engine_format)(); /* get format */ int (*audio_engine_channels)(); /* get num channels */ int (*audio_engine_rate)(); /* get sample rate */ void (*audio_engine_sync)(); /* dma cache sync */ uint_t (*audio_engine_qlen)(); /* get hw fifo len */ void (*audio_engine_chinfo)(); /* channel cfg info */ uint_t (*audio_engine_playahead)(); /* play ahead frames */
The version of the engine interface. Drivers must supply AUDIO_ENGINE_VERSION.
Function entry that opens the engine and initializes hardware and resources.
Function entry that closes the engine and possibly releases any resources.
Function entry to start audio data transfer.
Function entry to stop audio data transfer.
Function entry to return engine's frame count.
Function entry to get the format of the engine.
Function entry to get the number of channels of the engine.
Function entry to get the sample rate of the engine.
Function entry to synchronize the DMA cache for the buffer associated with the engine.
Function entry to determine the on-device FIFO len for the engine.
Function entry to determine number and layout channels for device.
Function entry to determine minimum number of frames that should be queued to the engine.
See attributes(5) for descriptions of the following attributes:
attributes(5), audio(7D) , audio_engine_channels(9E), audio_engine_chinfo(9E), audio_engine_count(9E), audio_engine_format(9E), audio_engine_open (9E), audio_engine_playahead(9E), audio_engine_qlen(9E), audio_engine_rate(9E), audio_engine_start(9E), audio_engine_sync (9E), audio_dev_add_engine(9F), audio_dev_suspend(9F), audio_engine_alloc(9F), audio_engine_set_private(9F)