1a9302e84S蔡正龙 #include <linux/init.h> 2a9302e84S蔡正龙 #include <linux/types.h> 3a9302e84S蔡正龙 #include <linux/audit.h> 4a9302e84S蔡正龙 #include <asm/unistd.h> 5a9302e84S蔡正龙 6a9302e84S蔡正龙 static unsigned dir_class[] = { 7a9302e84S蔡正龙 #include <asm-generic/audit_dir_write.h> 8a9302e84S蔡正龙 ~0U 9a9302e84S蔡正龙 }; 10a9302e84S蔡正龙 11a9302e84S蔡正龙 static unsigned read_class[] = { 12a9302e84S蔡正龙 #include <asm-generic/audit_read.h> 13a9302e84S蔡正龙 ~0U 14a9302e84S蔡正龙 }; 15a9302e84S蔡正龙 16a9302e84S蔡正龙 static unsigned write_class[] = { 17a9302e84S蔡正龙 #include <asm-generic/audit_write.h> 18a9302e84S蔡正龙 ~0U 19a9302e84S蔡正龙 }; 20a9302e84S蔡正龙 21a9302e84S蔡正龙 static unsigned chattr_class[] = { 22a9302e84S蔡正龙 #include <asm-generic/audit_change_attr.h> 23a9302e84S蔡正龙 ~0U 24a9302e84S蔡正龙 }; 25a9302e84S蔡正龙 26a9302e84S蔡正龙 static unsigned signal_class[] = { 27a9302e84S蔡正龙 #include <asm-generic/audit_signal.h> 28a9302e84S蔡正龙 ~0U 29a9302e84S蔡正龙 }; 30a9302e84S蔡正龙 audit_classify_arch(int arch)31a9302e84S蔡正龙int audit_classify_arch(int arch) 32a9302e84S蔡正龙 { 33a9302e84S蔡正龙 return 0; 34a9302e84S蔡正龙 } 35a9302e84S蔡正龙 audit_classify_syscall(int abi,unsigned syscall)36a9302e84S蔡正龙int audit_classify_syscall(int abi, unsigned syscall) 37a9302e84S蔡正龙 { 38a9302e84S蔡正龙 switch(syscall) { 39a9302e84S蔡正龙 case __NR_open: 4042f355efSRichard Guy Briggs return AUDITSC_OPEN; 41a9302e84S蔡正龙 case __NR_openat: 4242f355efSRichard Guy Briggs return AUDITSC_OPENAT; 43a9302e84S蔡正龙 case __NR_execve: 4442f355efSRichard Guy Briggs return AUDITSC_EXECVE; 45*1c30e3afSRichard Guy Briggs case __NR_openat2: 46*1c30e3afSRichard Guy Briggs return AUDITSC_OPENAT2; 47a9302e84S蔡正龙 default: 4842f355efSRichard Guy Briggs return AUDITSC_NATIVE; 49a9302e84S蔡正龙 } 50a9302e84S蔡正龙 } 51a9302e84S蔡正龙 audit_classes_init(void)52a9302e84S蔡正龙static int __init audit_classes_init(void) 53a9302e84S蔡正龙 { 54a9302e84S蔡正龙 audit_register_class(AUDIT_CLASS_WRITE, write_class); 55a9302e84S蔡正龙 audit_register_class(AUDIT_CLASS_READ, read_class); 56a9302e84S蔡正龙 audit_register_class(AUDIT_CLASS_DIR_WRITE, dir_class); 57a9302e84S蔡正龙 audit_register_class(AUDIT_CLASS_CHATTR, chattr_class); 58a9302e84S蔡正龙 audit_register_class(AUDIT_CLASS_SIGNAL, signal_class); 59a9302e84S蔡正龙 return 0; 60a9302e84S蔡正龙 } 61a9302e84S蔡正龙 62a9302e84S蔡正龙 __initcall(audit_classes_init); 63