int io_link ( resmgr_context_t *ctp, io_link_t *msg, RESMGR_HANDLE_T *handle, io_link_extra_t *extra )
Classification: Connect
Default handler: none
Helper functions: iofunc_link()
Client function: link()
Messages: _IO_CONNECT with subtype _IO_CONNECT_LINK
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_link_t; typedef union _io_link_extra { struct _msg_info info; void *ocb; char path [1]; struct _io_resmgr_link_extra resmgr; } io_link_extra_t;
Description: Creates a new link with the name given in the path member of msg to the already-existing pathname specified by the path member of extra (passed to your function). For convenience, the ocb member of extra contains a pointer to the OCB for the existing pathname.
Returns: The status via the helper macro _RESMGR_STATUS().