next up previous
Next: Протоколирование в Системе Up: Вспомогательные Функции RSBAC Previous: Общие Списки

Преобразование Значения в Имя

Все эти функции требуют предопределенного пространства для строки имени. Для удобства возвращается тот же самый указатель действия. Декларации

char name[RSBAC_MAXNAMELEN];
достаточно для всех функции, за исключением target_id_name, если в конфигурации ядра задействовано использование полного имени в протоколировании. В этом случае делается один лист (Linux macro PAGE_SIZE).

Эти, и некоторые name-to-value-функции, могут быть также использованы в пользовательском инструментарии, просто скопируйте getname.c, скомпилируйте его в getname.o и соедините с вашей программой. Загляните в инструментарий администратора RSBAC, что бы видеть как это используется.

#include  <rsbac/getname.h>

char * get_request_name

  (char * request_name, 

   enum rsbac_adf_request_t request);

char * get_attribute_name

  (char * attr_name, 

   enum rsbac_attribute_t attr);

char * get_scd_type_name

  (char * res_name, 

   enum rsbac_scd_type_t res);

сhar * get_target_name

  (char * target_type_name, 

   enum rsbac_target_t target, 

   char * target_id_name, 

   union rsbac_target_id_t tid);

/* returns target_type_name. */

/* target_id_name includes full identification

   with id numbers and path */

char * get_switch_target_name

  (char * switch_name, 

   enum rsbac_switch_target_t target);

/* fixed module names */

char * get_error_name

  (char * error_name, 

   int error);

/* RSBAC error names only, other values are

   returned as decimal numbers. */


next up previous
Next: Протоколирование в Системе Up: Вспомогательные Функции RSBAC Previous: Общие Списки