tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: In kernel mixing - audio cloning



   Date: Wed, 28 Dec 2016 14:05:58 +1100
   From: Nathanial Sloss <nat%netbsd.org@localhost>

   Please see ftp://ftp.netbsd.org/pub/NetBSD/misc/nat/audio-clone.diff

   The audio device is cloned and their is no longer a limitation of one device 
   per process and file descriptors may be shared among processes.

   The only function that gave me trouble was audiommap which still has to be 
   changed.

Some quick comments and questions after a five-minute skim:

- Pass `-p' to diff to make the patch easier to review.

- For an example of a cloning device mmap routine, see
  sys/external/bsd/drm2/drm/drm_drv.c and drm_vm.c.  You may be able
  to get away with just doing udv_attach like drm_mmap_object in
  drm_vm.c.

- You seem to have replaced some `struct lwp *l' parameters by curlwp.
  That's OK, but it should be in a separate change to make it easier
  to review.  Where struct cdevsw prototypes got replaced by struct
  fileops prototypes, just add `struct lwp *l = curlwp' to the top of
  the function to reduce changes later.

- I don't understand the filt_audioread/filt_audiowrite changes: why
  is it correct to replace n by 0 here?

- Does struct audio_pid actually need to store a pid or lwpid any
  more?  Does anything initialize those fields now?

- Why is struct audio_pid exposed to userland in audioio.h?


Home | Main Index | Thread Index | Old Index