Get statistics about the filesystem event manager


#include <sys/dcmd_fsevmgr.h>

#define DCMD_FSEVMGR_STATS   __DIOTF(_DCMD_FSEVMGR, 5, fsevmgr_stats_t)

Arguments to devctl():

Argument Value
filedes A file descriptor that you obtained by opening /dev/fsevents
dev_data_ptr A pointer to a fsevmgr_stats_t
n_bytes sizeof(fsevmgr_stats_t) plus the size of the array of fsevmgr_mbstats_t structures.
dev_info_ptr NULL


This commands gets statistics about the filesystem event manager.




A filled-in fsevmgr_stats_t structure:

typedef struct fsevmgr_mbstats_s {
        uint64_t rxbytes;               /* Received total bytes  */
        uint64_t txbytes;               /* Transmitted total bytes  */
        uint64_t rxevents;              /* Received events */
        uint64_t txevents;              /* Transmitted events */
        uint64_t writecalls;            /* Number of write calls */
        uint64_t readcalls;             /* Number of read calls */
        uint64_t lostevents;            /* Number of lost events */
        uint32_t size;                  /* Mailbox size in bytes */
        uint32_t used;                  /* Mailbox bytes used */
        uint32_t maxused;               /* Mailbox maximum bytes used */
        uint32_t deferred;              /* Current deferred read count */
        uint32_t maxdeferred;           /* Maximum deferred read count */
        uint32_t watches;               /* Current number of watch filters */
        uint32_t maxwatches;            /* Maximum number of watch filters */
        uint32_t inotifymask;           /* Current combination of all inotify masks */
        uint32_t maxinotifymask;        /* Combination of all watch masks ever used */
        pid_t owner;                    /* Owning process */
} fsevmgr_mbstats_t;

typedef struct fsevmgr_stats_s {
        uint32_t mailboxes;             /* Number of mailboxes (elements in array) */
        fsevmgr_mbstats_t mbstats[1];   /* Array of mailbox stats */
} fsevmgr_stats_t;


The devctl() function can return the following, in addition to the error codes listed in its entry in the C Library Reference:

The buffer provided isn't big enough to hold the data.

See also:

devctl() in the QNX Neutrino C Library Reference

fsevmgr in the Utilities Reference