next up previous
Next: Функции Регистрации Up: Регистрация Модуля Previous: Регистрация Модуля

Callback-функции

Вы можете регистрировать следующие функции:

int rsbac_reg_request_func_t 

  ( enum rsbac_adf_request_t request, 

         rsbac_pid_t caller_pid, 

    enum rsbac_target_t target, 

    union rsbac_target_id_t tid, 

    enum rsbac_attribute_t attr, 

    union rsbac_attribute_value_t attr_val, 

    rsbac_uid_t owner); /* process owner */

int rsbac_reg_set_attr_func_t 

  ( enum rsbac_adf_request_t request, 

         rsbac_pid_t caller_pid, 

    enum rsbac_target_t target, 

    union rsbac_target_id_t tid, 

    enum rsbac_target_t new_target, 

    union rsbac_target_id_t new_tid, 

    enum rsbac_attribute_t attr, 

    union rsbac_attribute_value_t attr_val, 

    rsbac_uid_t owner); /* process owner */

boolean rsbac_reg_need_overwrite_func 

  (struct dentry * dentry_p);

Параметр need_lock сообщает, что в окружение функции write-to-disk должны быть помещены функции ядра lock_kernel() / unlock_kernel(). К сожалению этот параметр меняется в зависимости от функции вызывающего rsbac_write. Возвращаемое значение является числом записанных списков (0 или более) или отрицательным значением ошибки, например значением, возвращенным rsbac_write_open.

int rsbac_reg_write_func_t(boolean need_lock);
Если правильное значение не равно 0, то ошибки должны быть автоматически исправлены. Если check_inode не 0, то числа ссылающиеся на иноды тоже будут проверены. В случае нормального завершения возвращаемое значение - 0, иное - ошибка.

int rsbac_reg_check_func_t(int correct, int check_inode);
int rsbac_reg_mount_func_t(kdev_t kdev);
int rsbac_reg_umount_func_t(kdev_t kdev);


next up previous
Next: Функции Регистрации Up: Регистрация Модуля Previous: Регистрация Модуля