Mount connect function handler

Prototype:

int (*mount) ( resmgr_context_t *ctp,
               io_mount_t *msg,
               RESMGR_HANDLE_T *handle,
               io_mount_extra_t *extra ) 

Classification:

Connect

Default handler:

none

Client functions:

mount(), umount()

Helper functions:

none

Messages:

_IO_CONNECT with the _IO_CONNECT_MOUNT subtype.

Data structure:

struct _io_connect {
  // internal fields (as described above)
  uint16_t path_len;
  uint8_t  extra_type;
  uint16_t extra_len;
  char     path [1];
};

struct _io_connect_link_reply {
  uint32_t reserved1;
  uint32_t file_type;
  uint8_t  eflag;
  uint8_t  reserved2[1];
  uint16_t chroot_len;
  uint32_t umask;
  uint16_t nentries;
  uint16_t path_len;
};

struct _io_connect_ftype_reply {
  uint16_t status;      /* Typically an errno */
  uint16_t reserved;
  uint32_t file_type;   /* _FTYPE_? in sys/ftype.h */
};

typedef union {
  struct _io_connect             connect;
  struct _io_connect_link_reply  link_reply;
  struct _io_connect_ftype_reply ftype_reply;
} io_mount_t;

Description:

This function is called whenever a mount() or umount() client function sends your resource manager a message. For more information about the mount connect function handler, see Handling mount() in the Handling Other Messages chapter of Writing a Resource Manager.

Returns:

The status via the helper macro _IO_SET_CONNECT_RET().

Referenced by:

resmgr_connect_funcs_t connect table

Permission checking:

QNX Neutrino does not provide a default mount function. Any resource manager that implements the mount function should restrict mount abilities to sufficiently privileged clients only. For additional information, see “Mount in the resource manager” in Writing a Resource Manager.