Теперь, для регистрации syscall, вы выбираете положительное, 32-х Битное целое со знаком число, как ваш персональный дескриптор и другое, подписанное 32-х Битное со знаком значение, как ваш публичный дескриптор syscall-диспетчера. Все действия, связанные с регистрацией, позднее будут нуждаться в этом уникальном секретном дескрипторе. Если случится так, что ваш дескриптор в данный момент используется, то вам будет отказано в регистрации со значением ошибки - RSBAC_EEXIST.
struct rsbac_reg_syscall_entry хранит в себе все необходимые значения. Может быть не учтено только имя. Ваш системный вызов позже будет идентифицирован в сообщениях REG и proc-файлах по их имени и дескриптору публичного диспетчера. Текущая максимальная длина имени ограничена 30 знаками.
{
rsbac_reg_handle_t registration_handle;
rsbac_reg_handle_t dispatcher_handle;
char name[RSBAC_REG_NAME_LEN+1];
rsbac_reg_syscall_func_t * syscall_func;
};
Заново добавленное во вхождение struct является значением версии REG, что позволит производить проверку версии для модулей полученных в бинарном виде. Оно всегда должно быть установлено в RSBAC_REG_VERSION. Функция регистрации возвратит ваш положительный дескриптор или отрицательный код ошибки (для дополнительной информации смотри include/rsbac/reg.h)
( rsbac_version_t version,
struct rsbac_reg_syscall_entry_t entry);
(rsbac_reg_handle_t registration_handle);