iofunc_mknod()

Подтвердить способность клиента создать новую точку входа в файловую систему

Прототип:

#include <sys/iofunc.h>
int iofunc_mknod( resmgr_context_t *ctp,
io_mknod_t *msg,
iofunc_attr_t *attr,
iofunc_attr_t *dattr,
struct _client_info *info );

Аргументы:

ctp
A pointer to a resmgr_context_t structure that the resource-manager library uses to pass context information between functions.
msg
A pointer to the io_mknod_t structure that contains the message that the resource manager received.
attr
NULL, or a pointer to the iofunc_attr_t structure that describes the characteristics of the resource.
dattr
A pointer to the iofunc_attr_t structure that you must set. The iofunc_attr_t structure describes the attributes of the parent directory.
info
NULL, or a pointer to a struct _client_info that contains information about the client.

Библиотека:

libc

Описание:

The iofunc_mknod() helper function supports mknod() requests by verifying that the client can make a new filesystem entry point. It's similar to iofunc_open().

The iofunc_mknod() function checks to see if the client (described by the optional info structure) has access to open the resource (name passed in the msg structure). The attr structure describes the resource's attributes, and the optional dattr structure defines the attributes of the parent directory (i.e. if dattr isn't NULL, it implies that the resource identified by attr is being created within the directory specified by dattr).

The info argument can be passed as NULL, in which case iofunc_mknod() obtains the client information itself via a call to iofunc_client_info(). It is, of course, more efficient to get the client info once, rather than calling this function with NULL every time.

If an error occurs, the function returns information about a client's connection in info and a constant.

Возвращаемое значение:

EOK
Успешное завершение.
EBADFSYS
NULL was passed in dattr.
EFAULT
A fault occurred when the kernel tried to access the info buffer.
EINVAL
The client process is no longer valid.
ENOSYS
NULL was passed in info.
EPERM
The group ID or owner ID didn't match.

Классификация:

ЗОСРВ «Нейтрино»

Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

struct _client_info, io_mknod_t, struct _io_connect, struct _io_connect_link_reply, struct _io_connect_ftype_reply, iofunc_client_info(), iofunc_open(), mknod(), resmgr_context_t




Предыдущий раздел: Описание API системной библиотеки