*参照元 [#pf33a67d]
#backlinks
*説明 [#xd8c6dd8]
-パス: [[linux-4.4.1/include/sound/pcm.h]]
-FIXME: これは何?
--説明
**参考 [#c3ff2487]
*実装 [#k2acb90d]
struct snd_pcm_ops {
int (*open)(struct snd_pcm_substream *substream);
int (*close)(struct snd_pcm_substream *substream);
-
--[[linux-4.4.1/snd_pcm_substream]]
int (*ioctl)(struct snd_pcm_substream * substream,
unsigned int cmd, void *arg);
int (*hw_params)(struct snd_pcm_substream *substream,
struct snd_pcm_hw_params *params);
-
--[[linux-4.4.1/snd_pcm_hw_params]]
int (*hw_free)(struct snd_pcm_substream *substream);
int (*prepare)(struct snd_pcm_substream *substream);
int (*trigger)(struct snd_pcm_substream *substream, int cmd);
snd_pcm_uframes_t (*pointer)(struct snd_pcm_substream *substream);
-
--[[linux-4.4.1/snd_pcm_uframes_t]]
int (*get_time_info)(struct snd_pcm_substream *substream,
struct timespec *system_ts, struct timespec *audio_ts,
struct snd_pcm_audio_tstamp_config *audio_tstamp_config,
struct snd_pcm_audio_tstamp_report *audio_tstamp_report);
-
--[[linux-4.4.1/timespec]]
--[[linux-4.4.1/snd_pcm_audio_tstamp_config]]
--[[linux-4.4.1/snd_pcm_audio_tstamp_report]]
int (*copy)(struct snd_pcm_substream *substream, int channel,
snd_pcm_uframes_t pos,
void __user *buf, snd_pcm_uframes_t count);
-snd_pcm_lib_write_transfer() から呼ばれる。
-FIXME: ほかにも?
--[[linux-4.4.1/snd_pcm_lib_write_transfer()]]
int (*silence)(struct snd_pcm_substream *substream, int channel,
snd_pcm_uframes_t pos, snd_pcm_uframes_t count);
struct page *(*page)(struct snd_pcm_substream *substream,
unsigned long offset);
int (*mmap)(struct snd_pcm_substream *substream, struct vm_area_struct *vma);
-
--[[linux-4.4.1/vm_area_struct]]
int (*ack)(struct snd_pcm_substream *substream);
};
*コメント [#y06ee0a5]