/linux-2.6.21.1-rsbac-1.3.4/include/rsbac/syscalls.h

Go to the documentation of this file.
00001 /************************************* */
00002 /* Rule Set Based Access Control       */
00003 /* Author and (c) 1999-2006:           */
00004 /*   Amon Ott <ao@rsbac.org>           */
00005 /* Syscall wrapper functions for all   */
00006 /* parts                               */
00007 /* Last modified: 13/Jul/2006          */
00008 /************************************* */
00009 
00010 #ifndef __RSBAC_SYSCALLS_H
00011 #define __RSBAC_SYSCALLS_H
00012 
00013 #include <linux/unistd.h>
00014 #include <rsbac/types.h>
00015 #include <rsbac/getname.h>
00016 #include <rsbac/helpers.h>
00017 #include <rsbac/error.h>
00018 
00019 enum rsbac_syscall_t
00020   {
00021     RSYS_version,
00022     RSYS_stats,
00023     RSYS_check,
00024     RSYS_get_attr,
00025     RSYS_get_attr_n,
00026     RSYS_set_attr,
00027     RSYS_set_attr_n,
00028     RSYS_remove_target,
00029     RSYS_remove_target_n,
00030     RSYS_net_list_all_netdev,
00031     RSYS_net_template,
00032     RSYS_net_list_all_template,
00033     RSYS_switch,
00034     RSYS_get_switch,
00035     RSYS_adf_log_switch,
00036     RSYS_get_adf_log,
00037     RSYS_write,
00038     RSYS_log,
00039     RSYS_mac_set_curr_level,
00040     RSYS_mac_get_curr_level,
00041     RSYS_mac_get_max_level,
00042     RSYS_mac_get_min_level,
00043     RSYS_mac_add_p_tru,
00044     RSYS_mac_remove_p_tru,
00045     RSYS_mac_add_f_tru,
00046     RSYS_mac_remove_f_tru,
00047     RSYS_mac_get_f_trulist,
00048     RSYS_mac_get_p_trulist,
00049     RSYS_stats_pm,
00050     RSYS_pm,
00051     RSYS_pm_change_current_task,
00052     RSYS_pm_create_file,
00053     RSYS_daz_flush_cache,
00054     RSYS_rc_copy_role,
00055     RSYS_rc_copy_type,
00056     RSYS_rc_get_item,
00057     RSYS_rc_set_item,
00058     RSYS_rc_change_role,
00059     RSYS_rc_get_eff_rights_n,
00060     RSYS_rc_get_list,
00061     RSYS_auth_add_p_cap,
00062     RSYS_auth_remove_p_cap,
00063     RSYS_auth_add_f_cap,
00064     RSYS_auth_remove_f_cap,
00065     RSYS_auth_get_f_caplist,
00066     RSYS_auth_get_p_caplist,
00067     RSYS_acl,
00068     RSYS_acl_n,
00069     RSYS_acl_get_rights,
00070     RSYS_acl_get_rights_n,
00071     RSYS_acl_get_tlist,
00072     RSYS_acl_get_tlist_n,
00073     RSYS_acl_get_mask,
00074     RSYS_acl_get_mask_n,
00075     RSYS_acl_group,
00076     RSYS_reg,
00077     RSYS_jail,
00078     RSYS_init,
00079     RSYS_rc_get_current_role,
00080     RSYS_um_auth_name,
00081     RSYS_um_auth_uid,
00082     RSYS_um_add_user,
00083     RSYS_um_add_group,
00084     RSYS_um_add_gm,
00085     RSYS_um_mod_user,
00086     RSYS_um_mod_group,
00087     RSYS_um_get_user_item,
00088     RSYS_um_get_group_item,
00089     RSYS_um_remove_user,
00090     RSYS_um_remove_group,
00091     RSYS_um_remove_gm,
00092     RSYS_um_user_exists,
00093     RSYS_um_group_exists,
00094     RSYS_um_get_next_user,
00095     RSYS_um_get_user_list,
00096     RSYS_um_get_gm_list,
00097     RSYS_um_get_gm_user_list,
00098     RSYS_um_get_group_list,
00099     RSYS_um_get_uid,
00100     RSYS_um_get_gid,
00101     RSYS_um_set_pass,
00102     RSYS_um_set_pass_name,
00103     RSYS_um_set_group_pass,
00104     RSYS_um_check_account,
00105     RSYS_um_check_account_name,
00106     RSYS_list_ta_begin,
00107     RSYS_list_ta_refresh,
00108     RSYS_list_ta_commit,
00109     RSYS_list_ta_forget,
00110     RSYS_list_all_dev,
00111     RSYS_acl_list_all_dev,
00112     RSYS_list_all_user,
00113     RSYS_acl_list_all_user,
00114     RSYS_list_all_group,
00115     RSYS_acl_list_all_group,
00116     RSYS_list_all_ipc,
00117     RSYS_rc_select_fd_create_type,
00118     RSYS_none
00119   };
00120 
00121 
00122 struct rsys_check_t
00123   {
00124     int correct;
00125     int check_inode;
00126   };
00127 
00128 struct rsys_get_attr_t
00129   {
00130           rsbac_list_ta_number_t ta_number;
00131           rsbac_enum_t module;
00132           rsbac_enum_t target;
00133     union rsbac_target_id_t * tid;
00134           rsbac_enum_t attr;
00135     union rsbac_attribute_value_t * value;
00136           int inherit;
00137   };
00138 
00139 struct rsys_get_attr_n_t
00140   {
00141           rsbac_list_ta_number_t ta_number;
00142           rsbac_enum_t module;
00143           rsbac_enum_t target;
00144           char * t_name;
00145           rsbac_enum_t attr;
00146     union rsbac_attribute_value_t * value;
00147           int inherit;
00148   };
00149 
00150 struct rsys_set_attr_t
00151   {
00152           rsbac_list_ta_number_t ta_number;
00153           rsbac_enum_t module;
00154           rsbac_enum_t target;
00155     union rsbac_target_id_t * tid;
00156           rsbac_enum_t attr;
00157     union rsbac_attribute_value_t * value;
00158   };
00159 
00160 struct rsys_set_attr_n_t
00161   {
00162           rsbac_list_ta_number_t ta_number;
00163           rsbac_enum_t module;
00164           rsbac_enum_t target;
00165           char * t_name;
00166           rsbac_enum_t attr;
00167     union rsbac_attribute_value_t * value;
00168   };
00169 
00170 struct rsys_remove_target_t
00171   {
00172           rsbac_list_ta_number_t ta_number;
00173           rsbac_enum_t target;
00174     union rsbac_target_id_t * tid;
00175   };
00176 
00177 struct rsys_remove_target_n_t
00178   {
00179          rsbac_list_ta_number_t ta_number;
00180           rsbac_enum_t target;
00181          char * t_name;
00182   };
00183 
00184 struct rsys_net_list_all_netdev_t
00185   {
00186     rsbac_list_ta_number_t ta_number;
00187     rsbac_netdev_id_t * id_p;
00188     u_long maxnum;
00189   };
00190 
00191 struct rsys_net_template_t
00192   {
00193           rsbac_list_ta_number_t ta_number;
00194           rsbac_enum_t call;
00195           rsbac_net_temp_id_t id;
00196     union rsbac_net_temp_syscall_data_t * data_p;
00197   };
00198 
00199 struct rsys_net_list_all_template_t
00200   {
00201     rsbac_list_ta_number_t ta_number;
00202     rsbac_net_temp_id_t * id_p;
00203     u_long maxnum;
00204   };
00205 
00206 struct rsys_switch_t
00207   {
00208     rsbac_enum_t module;
00209     int value;
00210   };
00211 
00212 struct rsys_get_switch_t
00213   {
00214     rsbac_enum_t module;
00215     int * value_p;
00216     int * switchable_p;
00217   };
00218 
00219 struct rsys_adf_log_switch_t
00220   {
00221     rsbac_enum_t request;
00222     rsbac_enum_t target;
00223     u_int        value;
00224   };
00225 
00226 struct rsys_get_adf_log_t
00227   {
00228     rsbac_enum_t   request;
00229     rsbac_enum_t   target;
00230     u_int        * value_p;
00231   };
00232 
00233 struct rsys_log_t
00234   {
00235     int type;
00236     char * buf;
00237     int len;
00238   };
00239 
00240 struct rsys_mac_set_curr_level_t
00241   {
00242     rsbac_security_level_t level;
00243     rsbac_mac_category_vector_t * categories_p;
00244   };
00245 
00246 struct rsys_mac_get_curr_level_t
00247   {
00248     rsbac_security_level_t      * level_p;
00249     rsbac_mac_category_vector_t * categories_p;
00250   };
00251 
00252 struct rsys_mac_get_max_level_t
00253   {
00254     rsbac_security_level_t      * level_p;
00255     rsbac_mac_category_vector_t * categories_p;
00256   };
00257 
00258 struct rsys_mac_get_min_level_t
00259   {
00260     rsbac_security_level_t      * level_p;
00261     rsbac_mac_category_vector_t * categories_p;
00262   };
00263 
00264 struct rsys_mac_add_p_tru_t
00265   {
00266     rsbac_list_ta_number_t ta_number;
00267     rsbac_pid_t pid;
00268     rsbac_uid_t uid;
00269     rsbac_time_t ttl;
00270   };
00271 
00272 struct rsys_mac_remove_p_tru_t
00273   {
00274     rsbac_list_ta_number_t ta_number;
00275     rsbac_pid_t pid;
00276     rsbac_uid_t uid;
00277   };
00278 
00279 struct rsys_mac_add_f_tru_t
00280   {
00281     rsbac_list_ta_number_t ta_number;
00282     char * filename;
00283     rsbac_uid_t uid;
00284     rsbac_time_t ttl;
00285   };
00286 
00287 struct rsys_mac_remove_f_tru_t
00288   {
00289     rsbac_list_ta_number_t ta_number;
00290     char * filename;
00291     rsbac_uid_t uid;
00292   };
00293 
00294 struct rsys_mac_get_f_trulist_t
00295   {
00296     rsbac_list_ta_number_t ta_number;
00297     char * filename;
00298     rsbac_uid_t * trulist;
00299     rsbac_time_t * ttllist;
00300     u_int maxnum;
00301   };
00302 
00303 struct rsys_mac_get_p_trulist_t
00304   {
00305     rsbac_list_ta_number_t ta_number;
00306     rsbac_pid_t pid;
00307     rsbac_uid_t * trulist;
00308     rsbac_time_t * ttllist;
00309     u_int maxnum;
00310   };
00311 
00312 struct rsys_pm_t
00313   {
00314     rsbac_list_ta_number_t ta_number;
00315           rsbac_enum_t function;
00316     union rsbac_pm_function_param_t * param_p;
00317           rsbac_pm_tkt_id_t ticket;
00318   };
00319 
00320 struct rsys_pm_change_current_task_t
00321   {
00322     rsbac_pm_task_id_t task;
00323   };
00324 
00325 struct rsys_pm_create_file_t
00326   {
00327     const char * filename;
00328     int mode;
00329     rsbac_pm_object_class_id_t object_class;
00330   };
00331 
00332 struct rsys_rc_copy_role_t
00333   {
00334     rsbac_list_ta_number_t ta_number;
00335     rsbac_rc_role_id_t from_role;
00336     rsbac_rc_role_id_t to_role;
00337   };
00338 
00339 struct rsys_rc_copy_type_t
00340   {
00341     rsbac_list_ta_number_t ta_number;
00342     rsbac_enum_t target;
00343     rsbac_rc_type_id_t from_type;
00344     rsbac_rc_type_id_t to_type;
00345   };
00346 
00347 struct rsys_rc_get_item_t
00348   {
00349           rsbac_list_ta_number_t ta_number;
00350           rsbac_enum_t target;
00351     union rsbac_rc_target_id_t * tid_p;
00352     union rsbac_rc_target_id_t * subtid_p;
00353           rsbac_enum_t item;
00354     union rsbac_rc_item_value_t * value_p;
00355           rsbac_time_t * ttl_p;
00356   };
00357 
00358 struct rsys_rc_set_item_t
00359   {
00360           rsbac_list_ta_number_t ta_number;
00361           rsbac_enum_t target;
00362     union rsbac_rc_target_id_t * tid_p;
00363     union rsbac_rc_target_id_t * subtid_p;
00364           rsbac_enum_t item;
00365     union rsbac_rc_item_value_t * value_p;
00366           rsbac_time_t ttl;
00367   };
00368 
00369 struct rsys_rc_get_list_t
00370   {
00371           rsbac_list_ta_number_t ta_number;
00372           rsbac_enum_t target;
00373     union rsbac_rc_target_id_t * tid_p;
00374           rsbac_enum_t item;
00375           u_int maxnum;
00376           __u32 * array_p;
00377           rsbac_time_t * ttl_array_p;
00378   };
00379 
00380 struct rsys_rc_change_role_t
00381   {
00382     rsbac_rc_role_id_t role;
00383     char * pass;
00384   };
00385 
00386 struct rsys_rc_get_eff_rights_n_t
00387   {
00388     rsbac_list_ta_number_t ta_number;
00389     rsbac_enum_t target;
00390     char * t_name;
00391     rsbac_rc_request_vector_t * request_vector_p;
00392     rsbac_time_t * ttl_p;
00393   };
00394 
00395 struct rsys_rc_get_current_role_t
00396   {
00397     rsbac_rc_role_id_t * role_p;
00398   };
00399 
00400 struct rsys_auth_add_p_cap_t
00401   {
00402            rsbac_list_ta_number_t ta_number;
00403            rsbac_pid_t pid;
00404            rsbac_enum_t cap_type;
00405     struct rsbac_auth_cap_range_t cap_range;
00406            rsbac_time_t ttl;
00407   };
00408 
00409 struct rsys_auth_remove_p_cap_t
00410   {
00411            rsbac_list_ta_number_t ta_number;
00412            rsbac_pid_t pid;
00413            rsbac_enum_t cap_type;
00414     struct rsbac_auth_cap_range_t cap_range;
00415   };
00416 
00417 struct rsys_auth_add_f_cap_t
00418   {
00419            rsbac_list_ta_number_t ta_number;
00420            char * filename;
00421            rsbac_enum_t cap_type;
00422     struct rsbac_auth_cap_range_t cap_range;
00423            rsbac_time_t ttl;
00424   };
00425 
00426 struct rsys_auth_remove_f_cap_t
00427   {
00428            rsbac_list_ta_number_t ta_number;
00429            char * filename;
00430            rsbac_enum_t cap_type;
00431     struct rsbac_auth_cap_range_t cap_range;
00432   };
00433 
00434 struct rsys_auth_get_f_caplist_t
00435   {
00436            rsbac_list_ta_number_t ta_number;
00437            char * filename;
00438            rsbac_enum_t cap_type;
00439     struct rsbac_auth_cap_range_t * caplist;
00440            rsbac_time_t * ttllist;
00441            u_int maxnum;
00442   };
00443 
00444 struct rsys_auth_get_p_caplist_t
00445   {
00446            rsbac_list_ta_number_t ta_number;
00447            rsbac_pid_t pid;
00448            rsbac_enum_t cap_type;
00449     struct rsbac_auth_cap_range_t * caplist;
00450            rsbac_time_t * ttllist;
00451            u_int maxnum;
00452   };
00453 
00454 struct rsys_acl_t
00455   {
00456            rsbac_list_ta_number_t ta_number;
00457            rsbac_enum_t call;
00458     struct rsbac_acl_syscall_arg_t * arg;
00459   };
00460 
00461 struct rsys_acl_n_t
00462   {
00463            rsbac_list_ta_number_t ta_number;
00464            rsbac_enum_t call;
00465     struct rsbac_acl_syscall_n_arg_t * arg;
00466   };
00467 
00468 struct rsys_acl_get_rights_t
00469   {
00470            rsbac_list_ta_number_t ta_number;
00471     struct rsbac_acl_syscall_arg_t * arg;
00472            rsbac_acl_rights_vector_t * rights_p;
00473            u_int effective;
00474   };
00475 
00476 struct rsys_acl_get_rights_n_t
00477   {
00478            rsbac_list_ta_number_t ta_number;
00479     struct rsbac_acl_syscall_n_arg_t * arg;
00480            rsbac_acl_rights_vector_t * rights_p;
00481            u_int effective;
00482   };
00483 
00484 struct rsys_acl_get_tlist_t
00485   {
00486            rsbac_list_ta_number_t ta_number;
00487            rsbac_enum_t target;
00488     union  rsbac_target_id_t * tid;
00489     struct rsbac_acl_entry_t * entry_array;
00490            rsbac_time_t * ttl_array;
00491            u_int maxnum;
00492   };
00493 
00494 struct rsys_acl_get_tlist_n_t
00495   {
00496            rsbac_list_ta_number_t ta_number;
00497            rsbac_enum_t target;
00498            char * t_name;
00499     struct rsbac_acl_entry_t * entry_array;
00500            rsbac_time_t * ttl_array;
00501            u_int maxnum;
00502   };
00503 
00504 struct rsys_acl_get_mask_t
00505   {
00506            rsbac_list_ta_number_t ta_number;
00507            rsbac_enum_t target;
00508     union  rsbac_target_id_t * tid;
00509            rsbac_acl_rights_vector_t * mask_p;
00510   };
00511 
00512 struct rsys_acl_get_mask_n_t
00513   {
00514            rsbac_list_ta_number_t ta_number;
00515            rsbac_enum_t target;
00516            char * t_name;
00517            rsbac_acl_rights_vector_t * mask_p;
00518   };
00519 
00520 struct rsys_acl_group_t
00521   {
00522           rsbac_list_ta_number_t ta_number;
00523           rsbac_enum_t call;
00524     union rsbac_acl_group_syscall_arg_t * arg_p;
00525   };
00526 
00527 struct rsys_reg_t
00528   {
00529     long handle;
00530     void * arg;
00531   };
00532 
00533 struct rsys_jail_t
00534   {
00535     rsbac_version_t      version;
00536     char               * path;
00537     rsbac_jail_ip_t      ip;
00538     rsbac_jail_flags_t   flags;
00539     rsbac_cap_vector_t   max_caps;
00540     rsbac_jail_scd_vector_t scd_get;
00541     rsbac_jail_scd_vector_t scd_modify;
00542   };
00543 
00544 struct rsys_init_t
00545   {
00546     char * root_dev;
00547   };
00548 
00549 struct rsys_um_auth_name_t
00550   {
00551     char * name;
00552     char * pass;
00553   };
00554 
00555 struct rsys_um_auth_uid_t
00556   {
00557     rsbac_uid_t   uid;
00558     char        * pass;
00559   };
00560 
00561 struct rsys_um_add_user_t
00562   {
00563            rsbac_list_ta_number_t ta_number;
00564            rsbac_uid_t             uid;
00565     struct rsbac_um_user_entry_t * entry_p;
00566            char                  * pass;
00567            rsbac_time_t            ttl;
00568   };
00569 
00570 struct rsys_um_add_group_t
00571   {
00572            rsbac_list_ta_number_t ta_number;
00573            rsbac_gid_t              gid;
00574     struct rsbac_um_group_entry_t * entry_p;
00575            char                   * pass;
00576            rsbac_time_t             ttl;
00577   };
00578 
00579 struct rsys_um_add_gm_t
00580   {
00581            rsbac_list_ta_number_t ta_number;
00582            rsbac_uid_t  uid;
00583            rsbac_gid_t  gid;
00584            rsbac_time_t ttl;
00585   };
00586 
00587 struct rsys_um_mod_user_t
00588   {
00589           rsbac_list_ta_number_t ta_number;
00590           rsbac_uid_t           uid;
00591           rsbac_enum_t          mod;
00592     union rsbac_um_mod_data_t * data_p;
00593   };
00594 
00595 struct rsys_um_mod_group_t
00596   {
00597           rsbac_list_ta_number_t ta_number;
00598           rsbac_gid_t           gid;
00599           rsbac_enum_t          mod;
00600     union rsbac_um_mod_data_t * data_p;
00601   };
00602 
00603 struct rsys_um_get_user_item_t
00604   {
00605           rsbac_list_ta_number_t ta_number;
00606           rsbac_uid_t           uid;
00607           rsbac_enum_t          mod;
00608     union rsbac_um_mod_data_t * data_p;
00609   };
00610 
00611 struct rsys_um_get_group_item_t
00612   {
00613           rsbac_list_ta_number_t ta_number;
00614           rsbac_gid_t           gid;
00615           rsbac_enum_t          mod;
00616     union rsbac_um_mod_data_t * data_p;
00617   };
00618 
00619 struct rsys_um_remove_user_t
00620   {
00621           rsbac_list_ta_number_t ta_number;
00622           rsbac_uid_t           uid;
00623   };
00624 
00625 struct rsys_um_remove_group_t
00626   {
00627           rsbac_list_ta_number_t ta_number;
00628           rsbac_gid_t           gid;
00629   };
00630 
00631 struct rsys_um_remove_gm_t
00632   {
00633           rsbac_list_ta_number_t ta_number;
00634           rsbac_uid_t  uid;
00635           rsbac_gid_t  gid;
00636   };
00637 
00638 struct rsys_um_user_exists_t
00639   {
00640           rsbac_list_ta_number_t ta_number;
00641           rsbac_uid_t uid;
00642   };
00643 
00644 struct rsys_um_group_exists_t
00645   {
00646           rsbac_list_ta_number_t ta_number;
00647           rsbac_gid_t gid;
00648   };
00649 
00650 struct rsys_um_get_next_user_t
00651   {
00652           rsbac_list_ta_number_t ta_number;
00653           rsbac_uid_t   old_user;
00654           rsbac_uid_t * next_user_p;
00655   };
00656 
00657 struct rsys_um_get_user_list_t
00658   {
00659           rsbac_list_ta_number_t ta_number;
00660           rsbac_uid_t * user_array;
00661           u_int         maxnum;
00662   };
00663 
00664 struct rsys_um_get_gm_list_t
00665   {
00666           rsbac_list_ta_number_t ta_number;
00667           rsbac_uid_t   user;
00668           rsbac_gid_t * group_array;
00669           u_int         maxnum;
00670   };
00671 
00672 struct rsys_um_get_gm_user_list_t
00673   {
00674           rsbac_list_ta_number_t ta_number;
00675           rsbac_gid_t   group;
00676           rsbac_uid_t * user_array;
00677           u_int         maxnum;
00678   };
00679 
00680 struct rsys_um_get_group_list_t
00681   {
00682           rsbac_list_ta_number_t ta_number;
00683           rsbac_gid_t * group_array;
00684           u_int         maxnum;
00685   };
00686 
00687 struct rsys_um_get_uid_t
00688   {
00689     rsbac_list_ta_number_t ta_number;
00690     char        * name;
00691     rsbac_uid_t * uid_p;
00692   };
00693 
00694 struct rsys_um_get_gid_t
00695   {
00696     rsbac_list_ta_number_t ta_number;
00697     char        * name;
00698     rsbac_gid_t * gid_p;
00699   };
00700 
00701 struct rsys_um_set_pass_t
00702   {
00703     rsbac_uid_t   uid;
00704     char        * old_pass;
00705     char        * new_pass;
00706   };
00707 
00708 struct rsys_um_set_pass_name_t
00709   {
00710     char * name;
00711     char * old_pass;
00712     char * new_pass;
00713   };
00714 
00715 struct rsys_um_set_group_pass_t
00716   {
00717     rsbac_gid_t   gid;
00718     char        * new_pass;
00719   };
00720 
00721 struct rsys_um_check_account_t
00722   {
00723     rsbac_uid_t   uid;
00724   };
00725 
00726 struct rsys_um_check_account_name_t
00727   {
00728     char * name;
00729   };
00730 
00731 struct rsys_list_ta_begin_t
00732   {
00733     rsbac_time_t ttl;
00734     rsbac_list_ta_number_t * ta_number_p;
00735     rsbac_uid_t commit_uid;
00736     char * password;
00737   };
00738 
00739 struct rsys_list_ta_refresh_t
00740   {
00741     rsbac_time_t ttl;
00742     rsbac_list_ta_number_t ta_number;
00743     char * password;
00744   };
00745 
00746 struct rsys_list_ta_commit_t
00747   {
00748     rsbac_list_ta_number_t ta_number;
00749     char * password;
00750   };
00751 
00752 struct rsys_list_ta_forget_t
00753   {
00754     rsbac_list_ta_number_t ta_number;
00755     char * password;
00756   };
00757 
00758 struct rsys_list_all_dev_t
00759   {
00760     rsbac_list_ta_number_t ta_number;
00761     struct rsbac_dev_desc_t * id_p;
00762     u_long maxnum;
00763   };
00764 
00765 struct rsys_acl_list_all_dev_t
00766   {
00767     rsbac_list_ta_number_t ta_number;
00768     struct rsbac_dev_desc_t * id_p;
00769     u_long maxnum;
00770   };
00771 
00772 struct rsys_list_all_user_t
00773   {
00774     rsbac_list_ta_number_t ta_number;
00775     rsbac_uid_t * id_p;
00776     u_long maxnum;
00777   };
00778 
00779 struct rsys_acl_list_all_user_t
00780   {
00781     rsbac_list_ta_number_t ta_number;
00782     rsbac_uid_t * id_p;
00783     u_long maxnum;
00784   };
00785 
00786 struct rsys_list_all_group_t
00787   {
00788     rsbac_list_ta_number_t ta_number;
00789     rsbac_gid_t * id_p;
00790     u_long maxnum;
00791   };
00792 
00793 struct rsys_acl_list_all_group_t
00794   {
00795     rsbac_list_ta_number_t ta_number;
00796     rsbac_gid_t * id_p;
00797     u_long maxnum;
00798   };
00799 
00800 struct rsys_list_all_ipc_t {
00801        rsbac_list_ta_number_t ta_number;
00802        struct rsbac_ipc_t *id_p;
00803        u_long maxnum;
00804 };
00805 
00806 struct rsys_rc_select_fd_create_type_t {
00807         rsbac_rc_type_id_t type;
00808 };
00809 
00810 
00811 union rsbac_syscall_arg_t
00812   {
00813     struct rsys_check_t check;
00814     struct rsys_get_attr_t get_attr;
00815     struct rsys_get_attr_n_t get_attr_n;
00816     struct rsys_set_attr_t set_attr;
00817     struct rsys_set_attr_n_t set_attr_n;
00818     struct rsys_remove_target_t remove_target;
00819     struct rsys_remove_target_n_t remove_target_n;
00820     struct rsys_net_list_all_netdev_t net_list_all_netdev;
00821     struct rsys_net_template_t net_template;
00822     struct rsys_net_list_all_template_t net_list_all_template;
00823     struct rsys_switch_t switch_module;
00824     struct rsys_get_switch_t get_switch_module;
00825     struct rsys_adf_log_switch_t adf_log_switch;
00826     struct rsys_get_adf_log_t get_adf_log;
00827     struct rsys_log_t log;
00828     struct rsys_mac_set_curr_level_t mac_set_curr_level;
00829     struct rsys_mac_get_curr_level_t mac_get_curr_level;
00830     struct rsys_mac_get_max_level_t mac_get_max_level;
00831     struct rsys_mac_get_min_level_t mac_get_min_level;
00832     struct rsys_mac_add_p_tru_t mac_add_p_tru;
00833     struct rsys_mac_remove_p_tru_t mac_remove_p_tru;
00834     struct rsys_mac_add_f_tru_t mac_add_f_tru;
00835     struct rsys_mac_remove_f_tru_t mac_remove_f_tru;
00836     struct rsys_mac_get_f_trulist_t mac_get_f_trulist;
00837     struct rsys_mac_get_p_trulist_t mac_get_p_trulist;
00838     struct rsys_pm_t pm;
00839     struct rsys_pm_change_current_task_t pm_change_current_task;
00840     struct rsys_pm_create_file_t pm_create_file;
00841     struct rsys_rc_copy_role_t rc_copy_role;
00842     struct rsys_rc_copy_type_t rc_copy_type;
00843     struct rsys_rc_get_item_t rc_get_item;
00844     struct rsys_rc_set_item_t rc_set_item;
00845     struct rsys_rc_get_list_t rc_get_list;
00846     struct rsys_rc_change_role_t rc_change_role;
00847     struct rsys_rc_get_eff_rights_n_t rc_get_eff_rights_n;
00848     struct rsys_rc_get_current_role_t rc_get_current_role;
00849     struct rsys_auth_add_p_cap_t auth_add_p_cap;
00850     struct rsys_auth_remove_p_cap_t auth_remove_p_cap;
00851     struct rsys_auth_add_f_cap_t auth_add_f_cap;
00852     struct rsys_auth_remove_f_cap_t auth_remove_f_cap;
00853     struct rsys_auth_get_f_caplist_t auth_get_f_caplist;
00854     struct rsys_auth_get_p_caplist_t auth_get_p_caplist;
00855     struct rsys_acl_t acl;
00856     struct rsys_acl_n_t acl_n;
00857     struct rsys_acl_get_rights_t acl_get_rights;
00858     struct rsys_acl_get_rights_n_t acl_get_rights_n;
00859     struct rsys_acl_get_tlist_t acl_get_tlist;
00860     struct rsys_acl_get_tlist_n_t acl_get_tlist_n;
00861     struct rsys_acl_get_mask_t acl_get_mask;
00862     struct rsys_acl_get_mask_n_t acl_get_mask_n;
00863     struct rsys_acl_group_t acl_group;
00864     struct rsys_reg_t reg;
00865     struct rsys_jail_t jail;
00866     struct rsys_init_t init;
00867     struct rsys_um_auth_name_t um_auth_name;
00868     struct rsys_um_auth_uid_t um_auth_uid;
00869     struct rsys_um_add_user_t um_add_user;
00870     struct rsys_um_add_group_t um_add_group;
00871     struct rsys_um_add_gm_t um_add_gm;
00872     struct rsys_um_mod_user_t um_mod_user;
00873     struct rsys_um_mod_group_t um_mod_group;
00874     struct rsys_um_get_user_item_t um_get_user_item;
00875     struct rsys_um_get_group_item_t um_get_group_item;
00876     struct rsys_um_remove_user_t um_remove_user;
00877     struct rsys_um_remove_group_t um_remove_group;
00878     struct rsys_um_remove_gm_t um_remove_gm;
00879     struct rsys_um_user_exists_t um_user_exists;
00880     struct rsys_um_group_exists_t um_group_exists;
00881     struct rsys_um_get_next_user_t um_get_next_user;
00882     struct rsys_um_get_user_list_t um_get_user_list;
00883     struct rsys_um_get_gm_list_t um_get_gm_list;
00884     struct rsys_um_get_gm_user_list_t um_get_gm_user_list;
00885     struct rsys_um_get_group_list_t um_get_group_list;
00886     struct rsys_um_get_uid_t um_get_uid;
00887     struct rsys_um_get_gid_t um_get_gid;
00888     struct rsys_um_set_pass_t um_set_pass;
00889     struct rsys_um_set_pass_name_t um_set_pass_name;
00890     struct rsys_um_set_group_pass_t um_set_group_pass;
00891     struct rsys_um_check_account_t um_check_account;
00892     struct rsys_um_check_account_name_t um_check_account_name;
00893     struct rsys_list_ta_begin_t list_ta_begin;
00894     struct rsys_list_ta_refresh_t list_ta_refresh;
00895     struct rsys_list_ta_commit_t list_ta_commit;
00896     struct rsys_list_ta_forget_t list_ta_forget;
00897     struct rsys_list_all_dev_t list_all_dev;
00898     struct rsys_acl_list_all_dev_t acl_list_all_dev;
00899     struct rsys_list_all_user_t list_all_user;
00900     struct rsys_acl_list_all_user_t acl_list_all_user;
00901     struct rsys_list_all_group_t list_all_group;
00902     struct rsys_acl_list_all_group_t acl_list_all_group;
00903     struct rsys_list_all_ipc_t list_all_ipc;
00904     struct rsys_rc_select_fd_create_type_t rc_select_fd_create_type;
00905            int dummy;
00906   };
00907 
00908 #ifndef __KERNEL__
00909 int rsbac_version(void);
00910 
00911 int rsbac_stats(void);
00912 
00913 int rsbac_check(int correct, int check_inode);
00914 
00915 int rsbac_write(void);
00916 
00917 int rsbac_get_attr(
00918   rsbac_list_ta_number_t ta_number,
00919   enum rsbac_switch_target_t module,
00920   enum rsbac_target_t target,
00921   union rsbac_target_id_t * tid,
00922   enum rsbac_attribute_t attr,
00923   union rsbac_attribute_value_t * value,
00924   int inherit);
00925 
00926 int rsbac_get_attr_n(
00927   rsbac_list_ta_number_t ta_number,
00928   enum rsbac_switch_target_t module,
00929   enum rsbac_target_t target,
00930   char * t_name,
00931   enum rsbac_attribute_t attr,
00932   union rsbac_attribute_value_t * value,
00933   int inherit);
00934 
00935 int rsbac_set_attr(
00936   rsbac_list_ta_number_t ta_number,
00937   enum rsbac_switch_target_t module,
00938   enum rsbac_target_t target,
00939   union rsbac_target_id_t * tid,
00940   enum rsbac_attribute_t attr,
00941   union rsbac_attribute_value_t * value);
00942 
00943 
00944 int rsbac_set_attr_n(
00945   rsbac_list_ta_number_t ta_number,
00946   enum rsbac_switch_target_t module,
00947   enum rsbac_target_t target,
00948   char * t_name,
00949   enum rsbac_attribute_t attr,
00950   union rsbac_attribute_value_t * value);
00951 
00952 int rsbac_remove_target(
00953   rsbac_list_ta_number_t ta_number,
00954   enum rsbac_target_t target,
00955   union rsbac_target_id_t * tid);
00956 
00957 int rsbac_remove_target_n(
00958   rsbac_list_ta_number_t ta_number,
00959   enum rsbac_target_t target,
00960   char * t_name);
00961 
00962 int rsbac_net_list_all_netdev(
00963   rsbac_list_ta_number_t ta_number,
00964   rsbac_netdev_id_t * id_p,
00965   u_long maxnum);
00966 
00967 int rsbac_net_template(
00968   rsbac_list_ta_number_t ta_number,
00969   enum rsbac_net_temp_syscall_t call,
00970   rsbac_net_temp_id_t id,
00971   union rsbac_net_temp_syscall_data_t * data_p);
00972 
00973 int rsbac_net_list_all_template(
00974   rsbac_list_ta_number_t ta_number,
00975   rsbac_net_temp_id_t * id_p,
00976   u_long maxnum);
00977 
00978 int rsbac_switch(enum rsbac_switch_target_t module, int value);
00979 
00980 int rsbac_get_switch(enum rsbac_switch_target_t module, int * value_p, int * switchable_p);
00981 
00982 /************** MAC ***************/
00983 
00984 int rsbac_mac_set_curr_level(rsbac_security_level_t level,
00985                              rsbac_mac_category_vector_t * categories_p);
00986 
00987 int rsbac_mac_get_curr_level(rsbac_security_level_t      * level_p,
00988                              rsbac_mac_category_vector_t * categories_p);
00989 
00990 int rsbac_mac_get_max_level(rsbac_security_level_t      * level_p,
00991                             rsbac_mac_category_vector_t * categories_p);
00992 
00993 int rsbac_mac_get_min_level(rsbac_security_level_t      * level_p,
00994                             rsbac_mac_category_vector_t * categories_p);
00995 
00996 int rsbac_mac_add_p_tru(
00997   rsbac_list_ta_number_t ta_number,
00998   rsbac_pid_t pid,
00999   rsbac_uid_t uid,
01000   rsbac_time_t ttl);
01001 
01002 int rsbac_mac_remove_p_tru(
01003   rsbac_list_ta_number_t ta_number,
01004   rsbac_pid_t pid,
01005   rsbac_uid_t uid);
01006 
01007 int rsbac_mac_add_f_tru(
01008   rsbac_list_ta_number_t ta_number,
01009   char * filename,
01010   rsbac_uid_t uid,
01011   rsbac_time_t ttl);
01012 
01013 int rsbac_mac_remove_f_tru(
01014   rsbac_list_ta_number_t ta_number,
01015   char * filename,
01016   rsbac_uid_t uid);
01017 
01018 /* trulist must have space for maxnum rsbac_uid_t entries! */
01019 int rsbac_mac_get_f_trulist(
01020   rsbac_list_ta_number_t ta_number,
01021   char * filename,
01022   rsbac_uid_t trulist[],
01023   rsbac_time_t ttllist[],
01024   u_int maxnum);
01025 
01026 int rsbac_mac_get_p_trulist(
01027   rsbac_list_ta_number_t ta_number,
01028   rsbac_pid_t pid,
01029   rsbac_uid_t trulist[],
01030   rsbac_time_t ttllist[],
01031   u_int maxnum);
01032 
01033 /************** PM ***************/
01034 
01035 int rsbac_stats_pm(void);
01036 
01037 int rsbac_pm(
01038         rsbac_list_ta_number_t ta_number,
01039   enum  rsbac_pm_function_type_t    function,
01040   union rsbac_pm_function_param_t * param_p,
01041         rsbac_pm_tkt_id_t           ticket);
01042 
01043 int rsbac_pm_change_current_task(rsbac_pm_task_id_t task);
01044 
01045 int rsbac_pm_create_file(const char * filename,
01046                              int mode,
01047                              rsbac_pm_object_class_id_t object_class);
01048 
01049 /************** DAZ **************/
01050 
01051 int rsbac_daz_flush_cache(void);
01052 
01053 /************** RC ***************/
01054 
01055 int rsbac_rc_copy_role(
01056   rsbac_list_ta_number_t ta_number,
01057   rsbac_rc_role_id_t from_role,
01058   rsbac_rc_role_id_t to_role);
01059 
01060 int rsbac_rc_copy_type(
01061        rsbac_list_ta_number_t ta_number,
01062   enum rsbac_target_t         target,
01063        rsbac_rc_type_id_t     from_type,
01064        rsbac_rc_type_id_t     to_type);
01065 
01066 int rsbac_rc_get_item(
01067         rsbac_list_ta_number_t  ta_number,
01068   enum  rsbac_rc_target_t       target,
01069   union rsbac_rc_target_id_t  * tid_p,
01070   union rsbac_rc_target_id_t  * subtid_p,
01071   enum  rsbac_rc_item_t         item,
01072   union rsbac_rc_item_value_t * value_p,
01073         rsbac_time_t          * ttl_p);
01074 
01075 /* Setting values */
01076 int rsbac_rc_set_item(
01077         rsbac_list_ta_number_t  ta_number,
01078   enum  rsbac_rc_target_t       target,
01079   union rsbac_rc_target_id_t  * tid_p,
01080   union rsbac_rc_target_id_t  * subtid_p,
01081   enum  rsbac_rc_item_t         item,
01082   union rsbac_rc_item_value_t * value_p,
01083         rsbac_time_t            ttl);
01084 
01085 int rsbac_rc_get_list(
01086         rsbac_list_ta_number_t  ta_number,
01087   enum  rsbac_rc_target_t       target,
01088   union rsbac_rc_target_id_t  * tid_p,
01089   enum  rsbac_rc_item_t         item,
01090         u_int maxnum,
01091         __u32  * array_p,
01092         rsbac_time_t * ttl_array_p);
01093 
01094 int rsbac_rc_change_role (rsbac_rc_role_id_t role, char * pass);
01095 
01096 int rsbac_rc_get_eff_rights_n(
01097         rsbac_list_ta_number_t ta_number,
01098   enum  rsbac_target_t   target,
01099         char           * t_name,
01100         rsbac_rc_request_vector_t * request_vector_p,
01101         rsbac_time_t          * ttl_p);
01102 
01103 int rsbac_rc_get_current_role (rsbac_rc_role_id_t * role_p);
01104 
01105 int rsbac_rc_sys_select_fd_create_type(rsbac_rc_type_id_t type);
01106 
01107 /************** AUTH ***************/
01108 
01109 /* Provide means for adding and removing of capabilities */
01110 int rsbac_auth_add_p_cap(
01111   rsbac_list_ta_number_t ta_number,
01112   rsbac_pid_t pid,
01113   enum rsbac_auth_cap_type_t cap_type,
01114   struct rsbac_auth_cap_range_t cap_range,
01115   rsbac_time_t ttl);
01116 
01117 int rsbac_auth_remove_p_cap(
01118   rsbac_list_ta_number_t ta_number,
01119   rsbac_pid_t pid,
01120   enum rsbac_auth_cap_type_t cap_type,
01121   struct rsbac_auth_cap_range_t cap_range);
01122 
01123 int rsbac_auth_add_f_cap(
01124   rsbac_list_ta_number_t ta_number,
01125   char * filename,
01126   enum rsbac_auth_cap_type_t cap_type,
01127   struct rsbac_auth_cap_range_t cap_range,
01128   rsbac_time_t ttl);
01129 
01130 int rsbac_auth_remove_f_cap(
01131   rsbac_list_ta_number_t ta_number,
01132   char * filename,
01133   enum rsbac_auth_cap_type_t cap_type,
01134   struct rsbac_auth_cap_range_t cap_range);
01135 
01136 /* caplist must have space for maxnum cap_range entries - first and last each! */
01137 int rsbac_auth_get_f_caplist(
01138   rsbac_list_ta_number_t ta_number,
01139   char * filename,
01140   enum rsbac_auth_cap_type_t cap_type,
01141   struct rsbac_auth_cap_range_t caplist[],
01142   rsbac_time_t ttllist[],
01143   u_int maxnum);
01144 
01145 int rsbac_auth_get_p_caplist(
01146   rsbac_list_ta_number_t ta_number,
01147   rsbac_pid_t pid,
01148   enum rsbac_auth_cap_type_t cap_type,
01149   struct rsbac_auth_cap_range_t caplist[],
01150   rsbac_time_t ttllist[],
01151   u_int maxnum);
01152 
01153 /**********************************/
01154 /************** REG ***************/
01155 
01156 int rsbac_reg(rsbac_reg_handle_t handle,
01157               void * arg);
01158 
01159 
01160 /**********************************/
01161 /************** ACL ***************/
01162 
01163 int rsbac_acl(
01164   rsbac_list_ta_number_t ta_number,
01165   enum   rsbac_acl_syscall_type_t call,
01166   struct rsbac_acl_syscall_arg_t * arg);
01167 
01168 int rsbac_acl_n(
01169   rsbac_list_ta_number_t ta_number,
01170   enum   rsbac_acl_syscall_type_t call,
01171   struct rsbac_acl_syscall_n_arg_t * arg);
01172 
01173 int rsbac_acl_get_rights(
01174   rsbac_list_ta_number_t ta_number,
01175   struct rsbac_acl_syscall_arg_t   * arg,
01176   rsbac_acl_rights_vector_t * rights_p,
01177   u_int                     effective);
01178 
01179 
01180 int rsbac_acl_get_rights_n(
01181   rsbac_list_ta_number_t ta_number,
01182   struct rsbac_acl_syscall_n_arg_t * arg,
01183   rsbac_acl_rights_vector_t * rights_p,
01184   u_int                     effective);
01185 
01186 int rsbac_acl_get_tlist (
01187   rsbac_list_ta_number_t     ta_number,
01188   enum   rsbac_target_t      target,
01189   union  rsbac_target_id_t * tid,
01190   struct rsbac_acl_entry_t   entry_array[],
01191          rsbac_time_t        ttl_array[],
01192          u_int               maxnum);
01193 
01194 int rsbac_acl_get_tlist_n(
01195   rsbac_list_ta_number_t     ta_number,
01196   enum   rsbac_target_t      target,
01197          char              * t_name,
01198   struct rsbac_acl_entry_t   entry_array[],
01199          rsbac_time_t        ttl_array[],
01200          u_int               maxnum);
01201 
01202 int rsbac_acl_get_mask (
01203   rsbac_list_ta_number_t     ta_number,
01204   enum   rsbac_target_t              target,
01205   union  rsbac_target_id_t         * tid,
01206          rsbac_acl_rights_vector_t * mask_p);
01207 
01208 int rsbac_acl_get_mask_n(
01209        rsbac_list_ta_number_t      ta_number,
01210   enum rsbac_target_t              target,
01211        char                      * t_name,
01212        rsbac_acl_rights_vector_t * mask_p);
01213 
01214 /********  ACL groups *********/
01215 
01216 int rsbac_acl_group(
01217         rsbac_list_ta_number_t           ta_number,
01218   enum  rsbac_acl_group_syscall_type_t   call,
01219   union rsbac_acl_group_syscall_arg_t  * arg_p);
01220 
01221 
01222 /**********************************/
01223 /************** JAIL **************/
01224 
01225 int rsbac_jail(rsbac_version_t version,
01226                char * path,
01227                rsbac_jail_ip_t ip,
01228                rsbac_jail_flags_t flags,
01229                rsbac_cap_vector_t max_caps,
01230                rsbac_jail_scd_vector_t scd_get,
01231                rsbac_jail_scd_vector_t scd_modify
01232                );
01233 
01234 int rsbac_list_all_ipc(rsbac_list_ta_number_t ta_number,
01235                        struct rsbac_ipc_t * id_p, u_long maxnum);
01236 
01237 /**********************************/
01238 /**************  UM  **************/
01239 
01240 int rsbac_um_auth_name(char * name,
01241                        char * pass);
01242 
01243 int rsbac_um_auth_uid(rsbac_uid_t uid,
01244                       char * pass);
01245 
01246 int rsbac_um_add_user(
01247   rsbac_list_ta_number_t ta_number,
01248   rsbac_uid_t uid,
01249   struct rsbac_um_user_entry_t * entry_p,
01250   char * pass,
01251   rsbac_time_t ttl);
01252 
01253 int rsbac_um_add_group(
01254   rsbac_list_ta_number_t ta_number,
01255   rsbac_gid_t gid,
01256   struct rsbac_um_group_entry_t * entry_p,
01257   char * pass,
01258   rsbac_time_t ttl);
01259 
01260 int rsbac_um_add_gm(
01261   rsbac_list_ta_number_t ta_number,
01262   rsbac_uid_t uid,
01263   rsbac_gid_t gid,
01264   rsbac_time_t ttl);
01265 
01266 int rsbac_um_mod_user(
01267   rsbac_list_ta_number_t ta_number,
01268   rsbac_uid_t uid,
01269   enum rsbac_um_mod_t mod,
01270   union rsbac_um_mod_data_t * data_p);
01271 
01272 int rsbac_um_mod_group(
01273   rsbac_list_ta_number_t ta_number,
01274   rsbac_gid_t gid,
01275   enum rsbac_um_mod_t mod,
01276   union rsbac_um_mod_data_t * data_p);
01277 
01278 int rsbac_um_get_user_item(
01279   rsbac_list_ta_number_t ta_number,
01280   rsbac_uid_t uid,
01281   enum rsbac_um_mod_t mod,
01282   union rsbac_um_mod_data_t * data_p);
01283 
01284 int rsbac_um_get_group_item(
01285   rsbac_list_ta_number_t ta_number,
01286   rsbac_gid_t gid,
01287   enum rsbac_um_mod_t mod,
01288   union rsbac_um_mod_data_t * data_p);
01289 
01290 int rsbac_um_remove_user(
01291   rsbac_list_ta_number_t ta_number,
01292   rsbac_uid_t uid);
01293 
01294 int rsbac_um_remove_group(
01295   rsbac_list_ta_number_t ta_number,
01296   rsbac_gid_t gid);
01297 
01298 int rsbac_um_remove_gm(
01299   rsbac_list_ta_number_t ta_number,
01300   rsbac_uid_t uid,
01301   rsbac_gid_t gid);
01302 
01303 int rsbac_um_user_exists(
01304   rsbac_list_ta_number_t ta_number,
01305   rsbac_uid_t uid);
01306 
01307 int rsbac_um_group_exists(
01308   rsbac_list_ta_number_t ta_number,
01309   rsbac_gid_t gid);
01310 
01311 int rsbac_um_get_next_user(
01312   rsbac_list_ta_number_t ta_number,
01313   rsbac_uid_t old_user,
01314   rsbac_uid_t * next_user_p);
01315 
01316 int rsbac_um_get_user_list(
01317   rsbac_list_ta_number_t ta_number,
01318   rsbac_uid_t user_array[],
01319   u_int       maxnum);
01320 
01321 int rsbac_um_get_gm_list(
01322   rsbac_list_ta_number_t ta_number,
01323   rsbac_uid_t user,
01324   rsbac_gid_t group_array[],
01325   u_int       maxnum);
01326 
01327 int rsbac_um_get_gm_user_list(
01328   rsbac_list_ta_number_t ta_number,
01329   rsbac_gid_t group,
01330   rsbac_uid_t user_array[],
01331   u_int       maxnum);
01332 
01333 int rsbac_um_get_group_list(
01334   rsbac_list_ta_number_t ta_number,
01335   rsbac_gid_t group_array[],
01336   u_int       maxnum);
01337 
01338 int rsbac_um_get_uid(
01339   rsbac_list_ta_number_t ta_number,
01340   char * name,
01341   rsbac_uid_t * uid_p);
01342 
01343 int rsbac_um_get_gid(
01344   rsbac_list_ta_number_t ta_number,
01345   char * name,
01346   rsbac_gid_t * gid_p);
01347 
01348 int rsbac_um_set_pass(rsbac_uid_t uid,
01349                       char * old_pass,
01350                       char * new_pass);
01351 
01352 int rsbac_um_set_pass_name(char * name,
01353                       char * old_pass,
01354                       char * new_pass);
01355 
01356 int rsbac_um_set_group_pass(rsbac_gid_t gid,
01357                             char * new_pass);
01358 
01359 int rsbac_um_check_account(rsbac_uid_t uid);
01360 
01361 int rsbac_um_check_account_name(char * name);
01362 
01363 int rsbac_list_ta_begin(rsbac_time_t ttl,
01364                         rsbac_list_ta_number_t * ta_number_p,
01365                         rsbac_uid_t commit_uid,
01366                         char * password);
01367 
01368 int rsbac_list_ta_refresh(rsbac_time_t ttl,
01369                           rsbac_list_ta_number_t ta_number,
01370                           char * password);
01371 
01372 int rsbac_list_ta_commit(rsbac_list_ta_number_t ta_number,
01373                          char * password);
01374 
01375 int rsbac_list_ta_forget(rsbac_list_ta_number_t ta_number,
01376                          char * password);
01377 
01378 int rsbac_list_all_dev(
01379   rsbac_list_ta_number_t ta_number,
01380   struct rsbac_dev_desc_t * id_p,
01381   u_long maxnum);
01382 
01383 int rsbac_acl_list_all_dev(
01384   rsbac_list_ta_number_t ta_number,
01385   struct rsbac_dev_desc_t * id_p,
01386   u_long maxnum);
01387 
01388 int rsbac_list_all_user(
01389   rsbac_list_ta_number_t ta_number,
01390   rsbac_uid_t * id_p,
01391   u_long maxnum);
01392 
01393 int rsbac_acl_list_all_user(
01394   rsbac_list_ta_number_t ta_number,
01395   rsbac_uid_t * id_p,
01396   u_long maxnum);
01397 
01398 int rsbac_list_all_group(
01399   rsbac_list_ta_number_t ta_number,
01400   rsbac_gid_t * id_p,
01401   u_long maxnum);
01402 
01403 int rsbac_acl_list_all_group(
01404   rsbac_list_ta_number_t ta_number,
01405   rsbac_gid_t * id_p,
01406   u_long maxnum);
01407 
01408 /************************************************* */
01409 /*             DEBUG/LOG functions                 */
01410 /************************************************* */
01411 
01412 int rsbac_adf_log_switch(enum rsbac_adf_request_t request,
01413                          enum rsbac_target_t      target,
01414                          u_int value);
01415 
01416 int rsbac_get_adf_log(enum rsbac_adf_request_t   request,
01417                       enum rsbac_target_t        target,
01418                       u_int                    * value_p);
01419 
01420 /*
01421  * Commands to rsbac_log:
01422  *
01423  *      0 -- Close the log.  Currently a NOP.
01424  *      1 -- Open the log. Currently a NOP.
01425  *      2 -- Read from the log.
01426  *      3 -- Read up to the last 4k of messages in the ring buffer.
01427  *      4 -- Read and clear last 4k of messages in the ring buffer
01428  *      5 -- Clear ring buffer.
01429  */
01430 int rsbac_log(int type,
01431                   char * buf,
01432                   int len);
01433 
01434 int rsbac_init(char * root_dev);
01435 
01436 #endif /* ifndef __KERNEL__ */
01437 
01438 #endif

Generated on Wed May 16 11:53:28 2007 for RSBAC by  doxygen 1.5.1