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