00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _LSM_CMD_H_
00029 #define _LSM_CMD_H_
00030
00031 #ifdef __cplusplus
00032 extern "C" {
00033 #endif
00034
00035 #define SPF_LSM_DEV_IN "/dev/security_in"
00036 #define LSMSPF_PRIMARY_INIT_FILE "/var/opt/alp/data/lib/security/LSMSPF_init"
00037
00038
00039 typedef struct Alp_lsmCmd_unit {
00040 u_int32_t command;
00041 u_int32_t subject_id;
00042 u_int32_t object_id1;
00043 u_int32_t object_id2;
00044 u_int32_t object_id3;
00045 u_int32_t process_id;
00046 u_int32_t bit_flag;
00047 int32_t status;
00048 } Alp_lsmCmd_unit;
00049
00050
00051
00052
00053 #define ALP_LSMCMD_SET_CREATE 1
00054 #define ALP_LSMCMD_SET_MODIFY 2
00055 #define ALP_LSMCMD_SET_DELETE 3
00056 #define ALP_LSMCMD_SET_RESET_ALL 4
00057
00058 #define ALP_LSMCMD_ACL_INODE_ADD 5
00059 #define ALP_LSMCMD_ACL_INODE_MODIFY 6
00060 #define ALP_LSMCMD_ACL_INODE_DELETE 7
00061 #define ALP_LSMCMD_ACL_INODE_RESET 8
00062 #define ALP_LSMCMD_ACL_NET_ADD 9
00063 #define ALP_LSMCMD_ACL_NET_MODIFY 10
00064 #define ALP_LSMCMD_ACL_NET_DELETE 11
00065 #define ALP_LSMCMD_ACL_NET_RESET 12
00066 #define ALP_LSMCMD_ACL_RESET_ALL 13
00067
00068 #define ALP_LSMCMD_DCACHE_ADD 14
00069 #define ALP_LSMCMD_DCACHE_MODIFY 15
00070 #define ALP_LSMCMD_DCACHE_ALL_MOD 16
00071 #define ALP_LSMCMD_DCACHE_DELETE 17
00072 #define ALP_LSMCMD_DCACHE_RESET_ALL 18
00073
00074 #define ALP_LSMCMD_DSIG_ADD 19
00075 #define ALP_LSMCMD_DSIG_DEL 20
00076 #define ALP_LSMCMD_DSIG_RESET 21
00077
00078 #define ALP_LSMCMD_DCL_INODE_ADD 22
00079 #define ALP_LSMCMD_DCL_INODE_MODIFY 23
00080 #define ALP_LSMCMD_DCL_INODE_DELETE 24
00081 #define ALP_LSMCMD_DCL_INODE_RESET 25
00082 #define ALP_LSMCMD_DCL_NET_ADD 26
00083 #define ALP_LSMCMD_DCL_NET_MODIFY 27
00084 #define ALP_LSMCMD_DCL_NET_DELETE 28
00085 #define ALP_LSMCMD_DCL_NET_RESET 29
00086 #define ALP_LSMCMD_DCL_RESET_ALL 30
00087
00088 #define ALP_LSMCMD_PID_MAP 31
00089 #define ALP_LSMCMD_PID_STAT 32
00090
00091 #define ALP_LSMCMD_LSM_ENABLE 33
00092 #define ALP_LSMCMD_LSM_DISABLE 34
00093 #define ALP_LSMCMD_LSM_DUMP_META 35
00094 #define ALP_LSMCMD_LSM_LOAD_META 36
00095
00096
00097
00098 #define ALP_LSMSET_BFLAG_EXCLUSIVE 0
00099 #define ALP_LSMSET_BFLAG_INET_INCL 1
00100 #define ALP_LSMSET_BFLAG_INET_ASK 2
00101 #define ALP_LSMSET_BFLAG_INO_INCL 4
00102 #define ALP_LSMSET_BFLAG_INO_ASK 8
00103 #define ALP_LSMSET_BFLAG_SOCK_INCL 16
00104 #define ALP_LSMSET_BFLAG_SOCK_ASK 32
00105
00106 #define ALP_LSMSET_SFLAG_BLOCK_ALL_SOCKET 0x00000001
00107 #define ALP_LSMSET_SFLAG_PERMIT_SOCKET 0x00000002
00108 #define ALP_LSMSET_SFLAG_BLOCK_INET 0x00000004
00109 #define ALP_LSMSET_SFLAG_PERMIT_INET 0x00000008
00110 #define ALP_LSMSET_SFLAG_BLOCK_IRDA 0x00000010
00111 #define ALP_LSMSET_SFLAG_PERMIT_IRDA 0x00000020
00112 #define ALP_LSMSET_SFLAG_BLOCK_BLUETOOTH 0x00000040
00113 #define ALP_LSMSET_SFLAG_PERMIT_BLUE 0x00000080
00114 #define ALP_LSMSET_SFLAG_BLOCK_UNIX 0x00000100
00115 #define ALP_LSMSET_SFLAG_PERMIT_UNIX 0x00000200
00116 #define ALP_LSMSET_SFLAG_BLOCK_FD_RECEIVE 0x00000400
00117 #define ALP_LSMSET_SFLAG_PERMIT_FD_RECEIVE 0x00000800
00118 #define ALP_LSMSET_SFLAG_NO_CONNECT 0x00001000
00119 #define ALP_LSMSET_SFLAG_ASK_CONNECT 0x00002000
00120 #define ALP_LSMSET_SFLAG_PERMIT_CONNECT 0x00004000
00121 #define ALP_LSMSET_SFLAG_NO_LISTEN 0x00008000
00122 #define ALP_LSMSET_SFLAG_ASK_LISTEN 0x00010000
00123 #define ALP_LSMSET_SFLAG_PERMIT_LISTEN 0x00020000
00124
00125 #define ALP_LSMDCH_SFLAG_CONNECT_INET_DENY 0x00000001
00126 #define ALP_LSMDCH_SFLAG_CONNECT_INET_BLOCK 0x00000002
00127 #define ALP_LSMDCH_SFLAG_CONNECT_INET_ALLOW 0x00000004
00128 #define ALP_LSMDCH_SFLAG_CONNECT_INET_PERMIT 0x00000008
00129 #define ALP_LSMDCH_SFLAG_CONNECT_IRDA_DENY 0x00000010
00130 #define ALP_LSMDCH_SFLAG_CONNECT_IRDA_BLOCK 0x00000020
00131 #define ALP_LSMDCH_SFLAG_CONNECT_IRDA_ALLOW 0x00000040
00132 #define ALP_LSMDCH_SFLAG_CONNECT_IRDA_PERMIT 0x00000080
00133 #define ALP_LSMDCH_SFLAG_CONNECT_BLUETOOTH_DENY 0x00000100
00134 #define ALP_LSMDCH_SFLAG_CONNECT_BLUETOOTH_BLOCK 0x00000200
00135 #define ALP_LSMDCH_SFLAG_CONNECT_BLUETOOTH_ALLOW 0x00000400
00136 #define ALP_LSMDCH_SFLAG_CONNECT_BLUETOOTH_PERMIT 0x00000800
00137 #define ALP_LSMDCH_SFLAG_CONNECT_UNIX_DENY 0x00001000
00138 #define ALP_LSMDCH_SFLAG_CONNECT_UNIX_BLOCK 0x00002000
00139 #define ALP_LSMDCH_SFLAG_CONNECT_UNIX_ALLOW 0x00004000
00140 #define ALP_LSMDCH_SFLAG_CONNECT_UNIX_PERMIT 0x00008000
00141 #define ALP_LSMDCH_SFLAG_LISTEN_INET_DENY 0x00010000
00142 #define ALP_LSMDCH_SFLAG_LISTEN_INET_BLOCK 0x00020000
00143 #define ALP_LSMDCH_SFLAG_LISTEN_INET_ALLOW 0x00040000
00144 #define ALP_LSMDCH_SFLAG_LISTEN_INET_PERMIT 0x00080000
00145 #define ALP_LSMDCH_SFLAG_LISTEN_IRDA_DENY 0x00100000
00146 #define ALP_LSMDCH_SFLAG_LISTEN_IRDA_BLOCK 0x00200000
00147 #define ALP_LSMDCH_SFLAG_LISTEN_IRDA_ALLOW 0x00400000
00148 #define ALP_LSMDCH_SFLAG_LISTEN_IRDA_PERMIT 0x00800000
00149 #define ALP_LSMDCH_SFLAG_LISTEN_BLUETOOTH_DENY 0x01000000
00150 #define ALP_LSMDCH_SFLAG_LISTEN_BLUETOOTH_BLOCK 0x02000000
00151 #define ALP_LSMDCH_SFLAG_LISTEN_BLUETOOTH_ALLOW 0x04000000
00152 #define ALP_LSMDCH_SFLAG_LISTEN_BLUETOOTH_PERMIT 0x08000000
00153 #define ALP_LSMDCH_SFLAG_LISTEN_UNIX_DENY 0x10000000
00154 #define ALP_LSMDCH_SFLAG_LISTEN_UNIX_BLOCK 0x20000000
00155 #define ALP_LSMDCH_SFLAG_LISTEN_UNIX_ALLOW 0x40000000
00156 #define ALP_LSMDCH_SFLAG_LISTEN_UNIX_PERMIT 0x80000000
00157
00158 #define ALP_LSMACL_BFLAG_DENY 1
00159 #define ALP_LSMACL_BFLAG_PERMIT 2
00160 #define ALP_LSMACL_BFLAG_ASK 4
00161
00162 #define ALP_LSMDCL_BFLAG_DENY 1
00163 #define ALP_LSMDCL_BFLAG_PERMIT 2
00164 #define ALP_LSMDCL_BFLAG_BLOCK 4
00165 #define ALP_LSMDCL_BFLAG_ALLOW 8
00166
00167
00168 #ifndef ALP_CLASS_LSM
00169 #define ALP_CLASS_LSM 0x1F000000
00170 #endif
00171
00172 #define ALP_STATUS_LSM_NO_SUB (ALP_CLASS_LSM | 1 )
00173 #define ALP_STATUS_LSM_DUP_SUB (ALP_CLASS_LSM | 2 )
00174 #define ALP_STATUS_LSM_INUSE_SUB (ALP_CLASS_LSM | 3 )
00175 #define ALP_STATUS_LSM_NO_OBJ (ALP_CLASS_LSM | 4 )
00176 #define ALP_STATUS_LSM_DUP_OBJ (ALP_CLASS_LSM | 5 )
00177 #define ALP_STATUS_LSM_DCACHE_BUSY (ALP_CLASS_LSM | 6 )
00178 #define ALP_STATUS_LSM_NO_THREAD (ALP_CLASS_LSM | 7 )
00179 #define ALP_STATUS_LSM_FOPEN_FAIL (ALP_CLASS_LSM | 8 )
00180 #define ALP_STATUS_LSM_FWRITE_FAIL (ALP_CLASS_LSM | 9 )
00181 #define ALP_STATUS_LSM_BAD_INIT_CMD (ALP_CLASS_LSM | 10 )
00182
00183
00184 #ifdef __KERNEL__
00185
00186
00187 extern struct list_head glsmList_ACLset_anchor;
00188 extern struct rw_semaphore glsmList_ACLset_flag;
00189
00190
00191 extern struct list_head glsmList_DCACH_anchor;
00192 extern struct rw_semaphore glsmList_DCACH_flag;
00193
00194
00195 extern atomic_t glsmCmd_LSM_toggle;
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223 int prv_lsmCmd_process_command(
00224 Alp_lsmCmd_unit* cmd_unit_ptr);
00225
00226
00227
00228
00229
00230 int prv_lsmCmd_init(void);
00231
00232
00233
00234
00235
00236 int prv_lsmCmd_cleanup(void);
00237
00238
00239 #endif
00240
00241
00242 #ifdef __cplusplus
00243 }
00244 #endif
00245
00246 #endif