linux/arch/s390/kernel/audit.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2#include <linux/init.h>
   3#include <linux/types.h>
   4#include <linux/audit.h>
   5#include <asm/unistd.h>
   6#include "audit.h"
   7
   8static unsigned dir_class[] = {
   9#include <asm-generic/audit_dir_write.h>
  10~0U
  11};
  12
  13static unsigned read_class[] = {
  14#include <asm-generic/audit_read.h>
  15~0U
  16};
  17
  18static unsigned write_class[] = {
  19#include <asm-generic/audit_write.h>
  20~0U
  21};
  22
  23static unsigned chattr_class[] = {
  24#include <asm-generic/audit_change_attr.h>
  25~0U
  26};
  27
  28static unsigned signal_class[] = {
  29#include <asm-generic/audit_signal.h>
  30~0U
  31};
  32
  33int audit_classify_arch(int arch)
  34{
  35#ifdef CONFIG_COMPAT
  36        if (arch == AUDIT_ARCH_S390)
  37                return 1;
  38#endif
  39        return 0;
  40}
  41
  42int audit_classify_syscall(int abi, unsigned syscall)
  43{
  44#ifdef CONFIG_COMPAT
  45        if (abi == AUDIT_ARCH_S390)
  46                return s390_classify_syscall(syscall);
  47#endif
  48        switch(syscall) {
  49        case __NR_open:
  50                return 2;
  51        case __NR_openat:
  52                return 3;
  53        case __NR_socketcall:
  54                return 4;
  55        case __NR_execve:
  56                return 5;
  57        default:
  58                return 0;
  59        }
  60}
  61
  62static int __init audit_classes_init(void)
  63{
  64#ifdef CONFIG_COMPAT
  65        audit_register_class(AUDIT_CLASS_WRITE_32, s390_write_class);
  66        audit_register_class(AUDIT_CLASS_READ_32, s390_read_class);
  67        audit_register_class(AUDIT_CLASS_DIR_WRITE_32, s390_dir_class);
  68        audit_register_class(AUDIT_CLASS_CHATTR_32, s390_chattr_class);
  69        audit_register_class(AUDIT_CLASS_SIGNAL_32, s390_signal_class);
  70#endif
  71        audit_register_class(AUDIT_CLASS_WRITE, write_class);
  72        audit_register_class(AUDIT_CLASS_READ, read_class);
  73        audit_register_class(AUDIT_CLASS_DIR_WRITE, dir_class);
  74        audit_register_class(AUDIT_CLASS_CHATTR, chattr_class);
  75        audit_register_class(AUDIT_CLASS_SIGNAL, signal_class);
  76        return 0;
  77}
  78
  79__initcall(audit_classes_init);
  80