Hi Greg,

Yeah, I used a wrong term when was asking about "callback". Actually I need
asynchronous notification, so I can pend a task on some primitive like a
semaphore.

Thank you for replying with an example. I will examine it.

Best regards,
Petro


On Wed, Dec 1, 2021, 8:43 PM Gregory Nutt <spudan...@gmail.com> wrote:

>
> > I have a question regarding FS automount functionality. Is there a way
> > to get a callback when file system is mounted and ready to be
> > accessed? Or the only way is to implement a polling loop like:
> >
> > while ( access( "/mnt/sdcard0", F_OK ) != 0 )
> > {
> >   sleep(1);
> > }
>
> No, there will never never be callbacks from the OS into application
> code.  That is not the POSIX way.  The POSIX way would use signals for
> things like this.
>
> Look in drivers/, there are many drivers that notify applications of
> events via signals.  Try searching for "notify".
>
> Here is one of many examples that provides a signal when a button is
> pressed:  drivers/input/button_upper.c.  That notification interface is
> described in include/nuttx/buttons.h:
>
>       66 /* Command:     BTNIOC_REGISTER
>       67  * Description: Register to receive a signal whenever there is
>     a change in
>       68  *              the state of button inputs.  This feature, of
>     course, depends
>       69  *              upon interrupt GPIO support from the platform.
>       70  * Argument:    A read-only pointer to an instance of struct
>     btn_notify_s
>       71  * Return:      Zero (OK) on success.  Minus one will be
>     returned on failure
>       72  *              with the errno value set appropriately.
>       73  */
>       74
>       75 #define BTNIOC_REGISTER   _BTNIOC(0x0003)
>
> A similar notification interface could be added to the
> fs/mount/fs_automounter logic to notify an application when a monitored
> volume is mounted or unmounted.
>
>

Reply via email to