2006-07-01 11:56:16 +04:00
# include <linux/init.h>
# include <linux/types.h>
# include <linux/audit.h>
# include <asm/unistd.h>
static unsigned dir_class [ ] = {
# include <asm-generic/audit_dir_write.h>
~ 0U
} ;
2006-09-01 03:05:56 +04:00
static unsigned read_class [ ] = {
# include <asm-generic/audit_read.h>
~ 0U
} ;
static unsigned write_class [ ] = {
# include <asm-generic/audit_write.h>
~ 0U
} ;
2006-07-01 11:56:16 +04:00
static unsigned chattr_class [ ] = {
# include <asm-generic/audit_change_attr.h>
~ 0U
} ;
2007-03-30 02:00:37 +04:00
static unsigned signal_class [ ] = {
# include <asm-generic/audit_signal.h>
~ 0U
} ;
2007-03-30 02:01:04 +04:00
int audit_classify_arch ( int arch )
{
return 0 ;
}
2006-09-01 03:26:40 +04:00
int audit_classify_syscall ( int abi , unsigned syscall )
{
switch ( syscall ) {
case __NR_open :
return 2 ;
2006-09-23 03:10:18 +04:00
# ifdef __NR_openat
2006-09-01 03:26:40 +04:00
case __NR_openat :
return 3 ;
2006-09-23 03:10:18 +04:00
# endif
2006-09-12 11:04:40 +04:00
# ifdef __NR_socketcall
2006-09-01 03:26:40 +04:00
case __NR_socketcall :
return 4 ;
2006-09-12 11:04:40 +04:00
# endif
2006-09-01 03:26:40 +04:00
case __NR_execve :
return 5 ;
default :
return 0 ;
}
}
2006-07-01 11:56:16 +04:00
static int __init audit_classes_init ( void )
{
2006-09-01 03:05:56 +04:00
audit_register_class ( AUDIT_CLASS_WRITE , write_class ) ;
audit_register_class ( AUDIT_CLASS_READ , read_class ) ;
2006-07-01 11:56:16 +04:00
audit_register_class ( AUDIT_CLASS_DIR_WRITE , dir_class ) ;
audit_register_class ( AUDIT_CLASS_CHATTR , chattr_class ) ;
2007-03-30 02:00:37 +04:00
audit_register_class ( AUDIT_CLASS_SIGNAL , signal_class ) ;
2006-07-01 11:56:16 +04:00
return 0 ;
}
__initcall ( audit_classes_init ) ;