/daten/src/linux-2.4.27-rsbac-v1.2.3/include/rsbac/adf_main.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
#ifndef __RSBAC_ADF_MAIN_H
00011
#define __RSBAC_ADF_MAIN_H
00012
00013
#include <linux/sched.h>
00014
#include <rsbac/types.h>
00015
00016
#if defined(CONFIG_RSBAC_REG) || defined(CONFIG_RSBAC_REG_MAINT)
00017
#include <rsbac/reg.h>
00018
#endif
00019
00020
#ifdef CONFIG_RSBAC_SECDEL
00021
#include <linux/dcache.h>
00022
#endif
00023
00024
00025
00026
00027
00028
extern u_long
rsbac_adf_request_count[
T_NONE+1];
00029
extern u_long
rsbac_adf_set_attr_count[
T_NONE+1];
00030
#ifdef CONFIG_RSBAC_XSTATS
00031
extern u_long rsbac_adf_request_xcount[
T_NONE+1][
R_NONE];
00032
extern u_long rsbac_adf_set_attr_xcount[
T_NONE+1][
R_NONE];
00033
#endif
00034
00035
00036
00037
00038
00039
00040
extern struct task_struct *
find_process_by_pid(pid_t);
00041
00042
#ifdef CONFIG_RSBAC_DEBUG
00043
extern enum rsbac_adf_req_ret_t rsbac_adf_request_check(
00044
enum rsbac_adf_request_t,
00045
rsbac_pid_t,
00046
enum rsbac_target_t,
00047
union rsbac_target_id_t,
00048
enum rsbac_attribute_t,
00049
union rsbac_attribute_value_t,
00050
rsbac_uid_t);
00051
00052
extern int rsbac_adf_set_attr_check(
enum rsbac_adf_request_t,
00053
rsbac_pid_t,
00054
enum rsbac_target_t,
00055
union rsbac_target_id_t,
00056
enum rsbac_target_t,
00057
union rsbac_target_id_t,
00058
enum rsbac_attribute_t,
00059
union rsbac_attribute_value_t,
00060
rsbac_uid_t);
00061
#endif
00062
00063
extern enum rsbac_adf_req_ret_t
00064
adf_and_plus(
enum rsbac_adf_req_ret_t res1,
00065
enum rsbac_adf_req_ret_t res2);
00066
00067
00068
00069
00070
00071
#if !defined(CONFIG_RSBAC_MAINT)
00072
00073
00074
00075
#ifdef CONFIG_RSBAC_MAC
00076
#ifdef CONFIG_RSBAC_SWITCH
00077
extern boolean rsbac_switch_mac;
00078
#endif
00079
00080
extern enum rsbac_adf_req_ret_t rsbac_adf_request_mac(
00081
enum rsbac_adf_request_t,
00082
rsbac_pid_t,
00083
enum rsbac_target_t,
00084
union rsbac_target_id_t,
00085
enum rsbac_attribute_t,
00086
union rsbac_attribute_value_t,
00087
rsbac_uid_t);
00088
00089
extern int rsbac_adf_set_attr_mac(
enum rsbac_adf_request_t,
00090
rsbac_pid_t,
00091
enum rsbac_target_t,
00092
union rsbac_target_id_t,
00093
enum rsbac_target_t,
00094
union rsbac_target_id_t,
00095
enum rsbac_attribute_t,
00096
union rsbac_attribute_value_t,
00097
rsbac_uid_t);
00098
00099
#endif
00100
00101
00102
00103
00104
#ifdef CONFIG_RSBAC_FC
00105
#ifdef CONFIG_RSBAC_SWITCH
00106
extern boolean rsbac_switch_fc;
00107
#endif
00108
00109
extern enum rsbac_adf_req_ret_t rsbac_adf_request_fc(
00110
enum rsbac_adf_request_t,
00111
rsbac_pid_t,
00112
enum rsbac_target_t,
00113
union rsbac_target_id_t,
00114
enum rsbac_attribute_t,
00115
union rsbac_attribute_value_t,
00116
rsbac_uid_t);
00117
00118
extern int rsbac_adf_set_attr_fc (
enum rsbac_adf_request_t,
00119
rsbac_pid_t,
00120
enum rsbac_target_t,
00121
union rsbac_target_id_t,
00122
enum rsbac_target_t,
00123
union rsbac_target_id_t,
00124
enum rsbac_attribute_t,
00125
union rsbac_attribute_value_t,
00126
rsbac_uid_t);
00127
00128
#endif
00129
00130
00131
00132
00133
#ifdef CONFIG_RSBAC_SIM
00134
#ifdef CONFIG_RSBAC_SWITCH
00135
extern boolean rsbac_switch_sim;
00136
#endif
00137
00138
extern enum rsbac_adf_req_ret_t rsbac_adf_request_sim(
00139
enum rsbac_adf_request_t,
00140
rsbac_pid_t,
00141
enum rsbac_target_t,
00142
union rsbac_target_id_t,
00143
enum rsbac_attribute_t,
00144
union rsbac_attribute_value_t,
00145
rsbac_uid_t);
00146
00147
extern int rsbac_adf_set_attr_sim(
enum rsbac_adf_request_t,
00148
rsbac_pid_t,
00149
enum rsbac_target_t,
00150
union rsbac_target_id_t,
00151
enum rsbac_target_t,
00152
union rsbac_target_id_t,
00153
enum rsbac_attribute_t,
00154
union rsbac_attribute_value_t,
00155
rsbac_uid_t);
00156
00157
#endif
00158
00159
00160
00161
00162
#ifdef CONFIG_RSBAC_PM
00163
#ifdef CONFIG_RSBAC_SWITCH
00164
extern boolean rsbac_switch_pm;
00165
#endif
00166
00167
extern enum rsbac_adf_req_ret_t rsbac_adf_request_pm(
00168
enum rsbac_adf_request_t,
00169
rsbac_pid_t,
00170
enum rsbac_target_t,
00171
union rsbac_target_id_t,
00172
enum rsbac_attribute_t,
00173
union rsbac_attribute_value_t,
00174
rsbac_uid_t);
00175
00176
extern int rsbac_adf_set_attr_pm (
enum rsbac_adf_request_t,
00177
rsbac_pid_t,
00178
enum rsbac_target_t,
00179
union rsbac_target_id_t,
00180
enum rsbac_target_t,
00181
union rsbac_target_id_t,
00182
enum rsbac_attribute_t,
00183
union rsbac_attribute_value_t,
00184
rsbac_uid_t);
00185
00186
#ifdef CONFIG_RSBAC_SECDEL
00187
extern boolean rsbac_need_overwrite_pm(
struct dentry * dentry_p);
00188
#endif
00189
00190
#endif
00191
00192
00193
00194
#ifdef CONFIG_RSBAC_DAZ
00195
#ifdef CONFIG_RSBAC_SWITCH
00196
extern boolean rsbac_switch_daz;
00197
#endif
00198
00199
extern enum rsbac_adf_req_ret_t rsbac_adf_request_daz(
00200
enum rsbac_adf_request_t,
00201
rsbac_pid_t,
00202
enum rsbac_target_t,
00203
union rsbac_target_id_t,
00204
enum rsbac_attribute_t,
00205
union rsbac_attribute_value_t,
00206
rsbac_uid_t);
00207
00208
extern int rsbac_adf_set_attr_daz (
enum rsbac_adf_request_t,
00209
rsbac_pid_t,
00210
enum rsbac_target_t,
00211
union rsbac_target_id_t,
00212
enum rsbac_target_t,
00213
union rsbac_target_id_t,
00214
enum rsbac_attribute_t,
00215
union rsbac_attribute_value_t,
00216
rsbac_uid_t);
00217
00218
#endif
00219
00220
00221
00222
#ifdef CONFIG_RSBAC_FF
00223
#ifdef CONFIG_RSBAC_SWITCH
00224
extern boolean rsbac_switch_ff;
00225
#endif
00226
00227
extern enum rsbac_adf_req_ret_t rsbac_adf_request_ff(
00228
enum rsbac_adf_request_t,
00229
rsbac_pid_t,
00230
enum rsbac_target_t,
00231
union rsbac_target_id_t,
00232
enum rsbac_attribute_t,
00233
union rsbac_attribute_value_t,
00234
rsbac_uid_t);
00235
00236
extern int rsbac_adf_set_attr_ff (
enum rsbac_adf_request_t,
00237
rsbac_pid_t,
00238
enum rsbac_target_t,
00239
union rsbac_target_id_t,
00240
enum rsbac_target_t,
00241
union rsbac_target_id_t,
00242
enum rsbac_attribute_t,
00243
union rsbac_attribute_value_t,
00244
rsbac_uid_t);
00245
00246
#ifdef CONFIG_RSBAC_SECDEL
00247
extern boolean rsbac_need_overwrite_ff(
struct dentry * dentry_p);
00248
#endif
00249
00250
#endif
00251
00252
00253
00254
#ifdef CONFIG_RSBAC_RC
00255
#ifdef CONFIG_RSBAC_SWITCH
00256
extern boolean rsbac_switch_rc;
00257
#endif
00258
00259
extern enum rsbac_adf_req_ret_t rsbac_adf_request_rc(
00260
enum rsbac_adf_request_t,
00261
rsbac_pid_t,
00262
enum rsbac_target_t,
00263
union rsbac_target_id_t,
00264
enum rsbac_attribute_t,
00265
union rsbac_attribute_value_t,
00266
rsbac_uid_t);
00267
00268
extern int rsbac_adf_set_attr_rc (
enum rsbac_adf_request_t,
00269
rsbac_pid_t,
00270
enum rsbac_target_t,
00271
union rsbac_target_id_t,
00272
enum rsbac_target_t,
00273
union rsbac_target_id_t,
00274
enum rsbac_attribute_t,
00275
union rsbac_attribute_value_t,
00276
rsbac_uid_t);
00277
00278
00279
#ifdef CONFIG_RSBAC_SECDEL
00280
extern boolean rsbac_need_overwrite_rc(
struct dentry * dentry_p);
00281
#endif
00282
#endif
00283
00284
00285
00286
#ifdef CONFIG_RSBAC_AUTH
00287
#ifdef CONFIG_RSBAC_SWITCH
00288
extern boolean rsbac_switch_auth;
00289
#endif
00290
00291
extern enum rsbac_adf_req_ret_t rsbac_adf_request_auth(
00292
enum rsbac_adf_request_t,
00293
rsbac_pid_t,
00294
enum rsbac_target_t,
00295
union rsbac_target_id_t,
00296
enum rsbac_attribute_t,
00297
union rsbac_attribute_value_t,
00298
rsbac_uid_t);
00299
00300
extern int rsbac_adf_set_attr_auth(
enum rsbac_adf_request_t,
00301
rsbac_pid_t,
00302
enum rsbac_target_t,
00303
union rsbac_target_id_t,
00304
enum rsbac_target_t,
00305
union rsbac_target_id_t,
00306
enum rsbac_attribute_t,
00307
union rsbac_attribute_value_t,
00308
rsbac_uid_t);
00309
00310
#endif
00311
00312
00313
00314
#ifdef CONFIG_RSBAC_ACL
00315
#ifdef CONFIG_RSBAC_SWITCH
00316
extern boolean rsbac_switch_acl;
00317
#endif
00318
00319
extern enum rsbac_adf_req_ret_t rsbac_adf_request_acl(
00320
enum rsbac_adf_request_t,
00321
rsbac_pid_t,
00322
enum rsbac_target_t,
00323
union rsbac_target_id_t,
00324
enum rsbac_attribute_t,
00325
union rsbac_attribute_value_t,
00326
rsbac_uid_t);
00327
00328
extern int rsbac_adf_set_attr_acl (
enum rsbac_adf_request_t,
00329
rsbac_pid_t,
00330
enum rsbac_target_t,
00331
union rsbac_target_id_t,
00332
enum rsbac_target_t,
00333
union rsbac_target_id_t,
00334
enum rsbac_attribute_t,
00335
union rsbac_attribute_value_t,
00336
rsbac_uid_t);
00337
00338
#endif
00339
00340
00341
00342
#ifdef CONFIG_RSBAC_CAP
00343
#ifdef CONFIG_RSBAC_SWITCH
00344
extern boolean rsbac_switch_cap;
00345
#endif
00346
00347
extern enum rsbac_adf_req_ret_t rsbac_adf_request_cap(
00348
enum rsbac_adf_request_t,
00349
rsbac_pid_t,
00350
enum rsbac_target_t,
00351
union rsbac_target_id_t,
00352
enum rsbac_attribute_t,
00353
union rsbac_attribute_value_t,
00354
rsbac_uid_t);
00355
00356
extern int rsbac_adf_set_attr_cap (
enum rsbac_adf_request_t,
00357
rsbac_pid_t,
00358
enum rsbac_target_t,
00359
union rsbac_target_id_t,
00360
enum rsbac_target_t,
00361
union rsbac_target_id_t,
00362
enum rsbac_attribute_t,
00363
union rsbac_attribute_value_t,
00364
rsbac_uid_t);
00365
00366
#endif
00367
00368
00369
00370
#ifdef CONFIG_RSBAC_JAIL
00371
#ifdef CONFIG_RSBAC_SWITCH
00372
extern boolean rsbac_switch_jail;
00373
#endif
00374
00375
extern enum rsbac_adf_req_ret_t rsbac_adf_request_jail(
00376
enum rsbac_adf_request_t,
00377
rsbac_pid_t,
00378
enum rsbac_target_t,
00379
union rsbac_target_id_t,
00380
enum rsbac_attribute_t,
00381
union rsbac_attribute_value_t,
00382
rsbac_uid_t);
00383
00384
extern int rsbac_adf_set_attr_jail(
enum rsbac_adf_request_t,
00385
rsbac_pid_t,
00386
enum rsbac_target_t,
00387
union rsbac_target_id_t,
00388
enum rsbac_target_t,
00389
union rsbac_target_id_t,
00390
enum rsbac_attribute_t,
00391
union rsbac_attribute_value_t,
00392
rsbac_uid_t);
00393
00394
#endif
00395
00396
00397
00398
#ifdef CONFIG_RSBAC_PAX
00399
#ifdef CONFIG_RSBAC_SWITCH
00400
extern boolean rsbac_switch_pax;
00401
#endif
00402
00403
extern enum rsbac_adf_req_ret_t rsbac_adf_request_pax(
00404
enum rsbac_adf_request_t,
00405
rsbac_pid_t,
00406
enum rsbac_target_t,
00407
union rsbac_target_id_t,
00408
enum rsbac_attribute_t,
00409
union rsbac_attribute_value_t,
00410
rsbac_uid_t);
00411
00412
extern int rsbac_adf_set_attr_pax(
enum rsbac_adf_request_t,
00413
rsbac_pid_t,
00414
enum rsbac_target_t,
00415
union rsbac_target_id_t,
00416
enum rsbac_target_t,
00417
union rsbac_target_id_t,
00418
enum rsbac_attribute_t,
00419
union rsbac_attribute_value_t,
00420
rsbac_uid_t);
00421
00422
#endif
00423
00424
00425
00426
00427
#ifdef CONFIG_RSBAC_RES
00428
#ifdef CONFIG_RSBAC_SWITCH
00429
extern boolean rsbac_switch_res;
00430
#endif
00431
00432
extern enum rsbac_adf_req_ret_t rsbac_adf_request_res(
00433
enum rsbac_adf_request_t,
00434
rsbac_pid_t,
00435
enum rsbac_target_t,
00436
union rsbac_target_id_t,
00437
enum rsbac_attribute_t,
00438
union rsbac_attribute_value_t,
00439
rsbac_uid_t);
00440
00441
extern int rsbac_adf_set_attr_res (
enum rsbac_adf_request_t,
00442
rsbac_pid_t,
00443
enum rsbac_target_t,
00444
union rsbac_target_id_t,
00445
enum rsbac_target_t,
00446
union rsbac_target_id_t,
00447
enum rsbac_attribute_t,
00448
union rsbac_attribute_value_t,
00449
rsbac_uid_t);
00450
00451
#ifdef CONFIG_RSBAC_SECDEL
00452
extern inline boolean rsbac_need_overwrite_res(
struct dentry * dentry_p)
00453 {
00454
return FALSE;
00455 }
00456
#endif
00457
#endif
00458
00459
00460
00461
#if defined(CONFIG_RSBAC_REG)
00462
extern enum rsbac_adf_req_ret_t rsbac_adf_request_reg(
00463
enum rsbac_adf_request_t,
00464
rsbac_pid_t,
00465
enum rsbac_target_t,
00466
union rsbac_target_id_t,
00467
enum rsbac_attribute_t,
00468
union rsbac_attribute_value_t,
00469
rsbac_uid_t);
00470
00471
extern int rsbac_adf_set_attr_reg (
enum rsbac_adf_request_t,
00472
rsbac_pid_t,
00473
enum rsbac_target_t,
00474
union rsbac_target_id_t,
00475
enum rsbac_target_t,
00476
union rsbac_target_id_t,
00477
enum rsbac_attribute_t,
00478
union rsbac_attribute_value_t,
00479
rsbac_uid_t);
00480
00481
#ifdef CONFIG_RSBAC_SECDEL
00482
extern inline boolean rsbac_need_overwrite_reg(
struct dentry * dentry_p)
00483 {
00484
return FALSE;
00485 }
00486
#endif
00487
#endif
00488
00489
#endif
00490
00491
#if defined(CONFIG_RSBAC_REG) || defined(CONFIG_RSBAC_REG_MAINT)
00492
00493
#ifdef CONFIG_RSBAC_INIT_DELAY
00494
void rsbac_reg_init(
void);
00495
#else
00496
void rsbac_reg_init(
void) __init;
00497 #endif
00498
00499
00500 extern
int rsbac_mount_reg(kdev_t kdev);
00501 extern
int rsbac_umount_reg(kdev_t kdev);
00502
00503
00504
00505
00506 #if defined(CONFIG_RSBAC_AUTO_WRITE)
00507 extern
int rsbac_write_reg(
boolean);
00508 #endif
00509
00510
00511 extern
int rsbac_check_reg(
int correct,
int check_inode);
00512
00513 #endif
00514
00515 #endif
Generated on Tue Aug 31 10:05:22 2004 for RSBAC by
1.3.8