I started to look into the audio setting issue I mentioned here a
couple of weeks ago (thread topic "Audio volume setting: not working -
sometimes?").  (9.1, amd64.)

Right away I ran into something I don't understand.

The implementation of AUDIO_SETINFO calls audio_file_setinfo with,
among other things, a variable called file.  file is passed in from the
caller, which gets it from

        KASSERT(fp->f_audioctx);
        file = fp->f_audioctx;

However, I have completely failed to figure out where f_audioctx is
set.  I find exactly one assignment to f_audioctx in the entire kernel
source tree, that being

        fp->f_audioctx = NULL;

f_audioctx is #defined to f_undata.fd_audioctx, but fd_audioctx occurs
only twice in the whole tree:

        struct audio_file *fd_audioctx; // DTYPE_MISC (audio)
#define f_audioctx      f_undata.fd_audioctx

However, the KASSERT, combined with AUDIO_SETINFO doing something,
indicates that it clearly is getting set.  So, I'm obviously missing
something.

What?

/~\ The ASCII                             Mouse
\ / Ribbon Campaign
 X  Against HTML                mo...@rodents-montreal.org
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B

Reply via email to