*参照元 [#a5c8dcf3] #backlinks *説明 [#s5ea5bde] -パス: [[linux-4.4.1/include/sound/pcm.h]] -FIXME: これは何? --説明 **参考 [#m2be7b9e] *実装 [#d70571e2] struct snd_pcm_runtime { /* -- Status -- */ struct snd_pcm_substream *trigger_master; struct timespec trigger_tstamp; /* trigger timestamp */ bool trigger_tstamp_latched; /* trigger timestamp latched in low-level driver/hardware */ - --[[linux-4.4.1/snd_pcm_substream]] --[[linux-4.4.1/timespec]] int overrange; snd_pcm_uframes_t avail_max; snd_pcm_uframes_t hw_ptr_base; /* Position at buffer restart */ snd_pcm_uframes_t hw_ptr_interrupt; /* Position at interrupt time */ unsigned long hw_ptr_jiffies; /* Time when hw_ptr is updated */ unsigned long hw_ptr_buffer_jiffies; /* buffer time in jiffies */ snd_pcm_sframes_t delay; /* extra delay; typically FIFO size */ u64 hw_ptr_wrap; /* offset for hw_ptr due to boundary wrap-around */ - --[[linux-4.4.1/snd_pcm_uframes_t]] --[[linux-4.4.1/snd_pcm_sframes_t]] /* -- HW params -- */ snd_pcm_access_t access; /* access mode */ snd_pcm_format_t format; /* SNDRV_PCM_FORMAT_* */ snd_pcm_subformat_t subformat; /* subformat */ - --[[linux-4.4.1/snd_pcm_access_t]] --[[linux-4.4.1/snd_pcm_format_t]] --[[linux-4.4.1/snd_pcm_subformat_t]] unsigned int rate; /* rate in Hz */ unsigned int channels; /* channels */ snd_pcm_uframes_t period_size; /* period size */ unsigned int periods; /* periods */ snd_pcm_uframes_t buffer_size; /* buffer size */ snd_pcm_uframes_t min_align; /* Min alignment for the format */ size_t byte_align; unsigned int frame_bits; unsigned int sample_bits; unsigned int info; unsigned int rate_num; unsigned int rate_den; unsigned int no_period_wakeup: 1; /* -- SW params -- */ int tstamp_mode; /* mmap timestamp is updated */ unsigned int period_step; snd_pcm_uframes_t start_threshold; snd_pcm_uframes_t stop_threshold; snd_pcm_uframes_t silence_threshold; /* Silence filling happens when noise is nearest than this */ snd_pcm_uframes_t silence_size; /* Silence filling size */ snd_pcm_uframes_t boundary; /* pointers wrap point */ snd_pcm_uframes_t silence_start; /* starting pointer to silence area */ snd_pcm_uframes_t silence_filled; /* size filled with silence */ union snd_pcm_sync_id sync; /* hardware synchronization ID */ - --[[linux-4.4.1/snd_pcm_sync_id]] /* -- mmap -- */ struct snd_pcm_mmap_status *status; struct snd_pcm_mmap_control *control; - --[[linux-4.4.1/snd_pcm_mmap_status]] --[[linux-4.4.1/snd_pcm_mmap_control]] /* -- locking / scheduling -- */ snd_pcm_uframes_t twake; /* do transfer (!poll) wakeup if non-zero */ wait_queue_head_t sleep; /* poll sleep */ wait_queue_head_t tsleep; /* transfer sleep */ struct fasync_struct *fasync; - --[[linux-4.4.1/wait_queue_head_t]] --[[linux-4.4.1/fasync_struct]] /* -- private section -- */ void *private_data; void (*private_free)(struct snd_pcm_runtime *runtime); - --[[linux-4.4.1/snd_pcm_runtime]] /* -- hardware description -- */ struct snd_pcm_hardware hw; struct snd_pcm_hw_constraints hw_constraints; - --[[linux-4.4.1/snd_pcm_hardware]] --[[linux-4.4.1/snd_pcm_hw_constraints]] /* -- timer -- */ unsigned int timer_resolution; /* timer resolution */ int tstamp_type; /* timestamp type */ /* -- DMA -- */ unsigned char *dma_area; /* DMA area */ dma_addr_t dma_addr; /* physical bus address (not accessible from main CPU) */ size_t dma_bytes; /* size of DMA area */ struct snd_dma_buffer *dma_buffer_p; /* allocated buffer */ - --[[linux-4.4.1/dma_addr_t]] --[[linux-4.4.1/snd_dma_buffer]] /* -- audio timestamp config -- */ struct snd_pcm_audio_tstamp_config audio_tstamp_config; struct snd_pcm_audio_tstamp_report audio_tstamp_report; struct timespec driver_tstamp; - --[[linux-4.4.1/snd_pcm_audio_tstamp_config]] --[[linux-4.4.1/snd_pcm_audio_tstamp_report]] #if defined(CONFIG_SND_PCM_OSS) || defined(CONFIG_SND_PCM_OSS_MODULE) - --[[linux-4.4.1/CONFIG_SND_PCM_OSS]] --[[linux-4.4.1/CONFIG_SND_PCM_OSS_MODULE]] /* -- OSS things -- */ struct snd_pcm_oss_runtime oss; - --[[linux-4.4.1/snd_pcm_oss_runtime]] #endif }; *コメント [#b883d353]