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. > >