const char *audit_type_to_string(int type) {
        switch (type) {
        case AUDIT_GET: return "GET";
        case AUDIT_SET: return "SET";
        case AUDIT_LIST: return "LIST";
        case AUDIT_ADD: return "ADD";
        case AUDIT_DEL: return "DEL";
        case AUDIT_USER: return "USER";
        case AUDIT_LOGIN: return "LOGIN";
        case AUDIT_WATCH_INS: return "WATCH_INS";
        case AUDIT_WATCH_REM: return "WATCH_REM";
        case AUDIT_WATCH_LIST: return "WATCH_LIST";
        case AUDIT_SIGNAL_INFO: return "SIGNAL_INFO";
        case AUDIT_ADD_RULE: return "ADD_RULE";
        case AUDIT_DEL_RULE: return "DEL_RULE";
        case AUDIT_LIST_RULES: return "LIST_RULES";
        case AUDIT_TRIM: return "TRIM";
        case AUDIT_MAKE_EQUIV: return "MAKE_EQUIV";
        case AUDIT_TTY_GET: return "TTY_GET";
        case AUDIT_TTY_SET: return "TTY_SET";
        case AUDIT_SET_FEATURE: return "SET_FEATURE";
        case AUDIT_GET_FEATURE: return "GET_FEATURE";
        case AUDIT_USER_AUTH: return "USER_AUTH";
        case AUDIT_USER_ACCT: return "USER_ACCT";
        case AUDIT_USER_MGMT: return "USER_MGMT";
        case AUDIT_CRED_ACQ: return "CRED_ACQ";
        case AUDIT_CRED_DISP: return "CRED_DISP";
        case AUDIT_USER_START: return "USER_START";
        case AUDIT_USER_END: return "USER_END";
        case AUDIT_USER_AVC: return "USER_AVC";
        case AUDIT_USER_CHAUTHTOK: return "USER_CHAUTHTOK";
        case AUDIT_USER_ERR: return "USER_ERR";
        case AUDIT_CRED_REFR: return "CRED_REFR";
        case AUDIT_USYS_CONFIG: return "USYS_CONFIG";
        case AUDIT_USER_LOGIN: return "USER_LOGIN";
        case AUDIT_USER_LOGOUT: return "USER_LOGOUT";
        case AUDIT_ADD_USER: return "ADD_USER";
        case AUDIT_DEL_USER: return "DEL_USER";
        case AUDIT_ADD_GROUP: return "ADD_GROUP";
        case AUDIT_DEL_GROUP: return "DEL_GROUP";
        case AUDIT_DAC_CHECK: return "DAC_CHECK";
        case AUDIT_CHGRP_ID: return "CHGRP_ID";
        case AUDIT_TEST: return "TEST";
        case AUDIT_TRUSTED_APP: return "TRUSTED_APP";
        case AUDIT_USER_SELINUX_ERR: return "USER_SELINUX_ERR";
        case AUDIT_USER_CMD: return "USER_CMD";
        case AUDIT_USER_TTY: return "USER_TTY";
        case AUDIT_CHUSER_ID: return "CHUSER_ID";
        case AUDIT_GRP_AUTH: return "GRP_AUTH";
        case AUDIT_SYSTEM_BOOT: return "SYSTEM_BOOT";
        case AUDIT_SYSTEM_SHUTDOWN: return "SYSTEM_SHUTDOWN";
        case AUDIT_SYSTEM_RUNLEVEL: return "SYSTEM_RUNLEVEL";
        case AUDIT_SERVICE_START: return "SERVICE_START";
        case AUDIT_SERVICE_STOP: return "SERVICE_STOP";
        case AUDIT_GRP_MGMT: return "GRP_MGMT";
        case AUDIT_GRP_CHAUTHTOK: return "GRP_CHAUTHTOK";
        case AUDIT_MAC_CHECK: return "MAC_CHECK";
        case AUDIT_ACCT_LOCK: return "ACCT_LOCK";
        case AUDIT_ACCT_UNLOCK: return "ACCT_UNLOCK";
        case AUDIT_USER_DEVICE: return "USER_DEVICE";
        case AUDIT_SOFTWARE_UPDATE: return "SOFTWARE_UPDATE";
        case AUDIT_DAEMON_START: return "DAEMON_START";
        case AUDIT_DAEMON_END: return "DAEMON_END";
        case AUDIT_DAEMON_ABORT: return "DAEMON_ABORT";
        case AUDIT_DAEMON_CONFIG: return "DAEMON_CONFIG";
        case AUDIT_DAEMON_RECONFIG: return "DAEMON_RECONFIG";
        case AUDIT_DAEMON_ROTATE: return "DAEMON_ROTATE";
        case AUDIT_DAEMON_RESUME: return "DAEMON_RESUME";
        case AUDIT_DAEMON_ACCEPT: return "DAEMON_ACCEPT";
        case AUDIT_DAEMON_CLOSE: return "DAEMON_CLOSE";
        case AUDIT_DAEMON_ERR: return "DAEMON_ERR";
        case AUDIT_SYSCALL: return "SYSCALL";
        case AUDIT_PATH: return "PATH";
        case AUDIT_IPC: return "IPC";
        case AUDIT_SOCKETCALL: return "SOCKETCALL";
        case AUDIT_CONFIG_CHANGE: return "CONFIG_CHANGE";
        case AUDIT_SOCKADDR: return "SOCKADDR";
        case AUDIT_CWD: return "CWD";
        case AUDIT_EXECVE: return "EXECVE";
        case AUDIT_IPC_SET_PERM: return "IPC_SET_PERM";
        case AUDIT_MQ_OPEN: return "MQ_OPEN";
        case AUDIT_MQ_SENDRECV: return "MQ_SENDRECV";
        case AUDIT_MQ_NOTIFY: return "MQ_NOTIFY";
        case AUDIT_MQ_GETSETATTR: return "MQ_GETSETATTR";
        case AUDIT_KERNEL_OTHER: return "KERNEL_OTHER";
        case AUDIT_FD_PAIR: return "FD_PAIR";
        case AUDIT_OBJ_PID: return "OBJ_PID";
        case AUDIT_TTY: return "TTY";
        case AUDIT_EOE: return "EOE";
        case AUDIT_BPRM_FCAPS: return "BPRM_FCAPS";
        case AUDIT_CAPSET: return "CAPSET";
        case AUDIT_MMAP: return "MMAP";
        case AUDIT_NETFILTER_PKT: return "NETFILTER_PKT";
        case AUDIT_NETFILTER_CFG: return "NETFILTER_CFG";
        case AUDIT_SECCOMP: return "SECCOMP";
        case AUDIT_PROCTITLE: return "PROCTITLE";
        case AUDIT_FEATURE_CHANGE: return "FEATURE_CHANGE";
        case AUDIT_REPLACE: return "REPLACE";
        case AUDIT_KERN_MODULE: return "KERN_MODULE";
        case AUDIT_FANOTIFY: return "FANOTIFY";
        case AUDIT_TIME_INJOFFSET: return "TIME_INJOFFSET";
        case AUDIT_TIME_ADJNTPVAL: return "TIME_ADJNTPVAL";
        case AUDIT_BPF: return "BPF";
        case AUDIT_EVENT_LISTENER: return "EVENT_LISTENER";
        case AUDIT_URINGOP: return "URINGOP";
        case AUDIT_OPENAT2: return "OPENAT2";
        case AUDIT_DM_CTRL: return "DM_CTRL";
        case AUDIT_DM_EVENT: return "DM_EVENT";
        case AUDIT_AVC: return "AVC";
        case AUDIT_SELINUX_ERR: return "SELINUX_ERR";
        case AUDIT_AVC_PATH: return "AVC_PATH";
        case AUDIT_MAC_POLICY_LOAD: return "MAC_POLICY_LOAD";
        case AUDIT_MAC_STATUS: return "MAC_STATUS";
        case AUDIT_MAC_CONFIG_CHANGE: return "MAC_CONFIG_CHANGE";
        case AUDIT_MAC_UNLBL_ALLOW: return "MAC_UNLBL_ALLOW";
        case AUDIT_MAC_CIPSOV4_ADD: return "MAC_CIPSOV4_ADD";
        case AUDIT_MAC_CIPSOV4_DEL: return "MAC_CIPSOV4_DEL";
        case AUDIT_MAC_MAP_ADD: return "MAC_MAP_ADD";
        case AUDIT_MAC_MAP_DEL: return "MAC_MAP_DEL";
        case AUDIT_MAC_IPSEC_ADDSA: return "MAC_IPSEC_ADDSA";
        case AUDIT_MAC_IPSEC_DELSA: return "MAC_IPSEC_DELSA";
        case AUDIT_MAC_IPSEC_ADDSPD: return "MAC_IPSEC_ADDSPD";
        case AUDIT_MAC_IPSEC_DELSPD: return "MAC_IPSEC_DELSPD";
        case AUDIT_MAC_IPSEC_EVENT: return "MAC_IPSEC_EVENT";
        case AUDIT_MAC_UNLBL_STCADD: return "MAC_UNLBL_STCADD";
        case AUDIT_MAC_UNLBL_STCDEL: return "MAC_UNLBL_STCDEL";
        case AUDIT_MAC_CALIPSO_ADD: return "MAC_CALIPSO_ADD";
        case AUDIT_MAC_CALIPSO_DEL: return "MAC_CALIPSO_DEL";
        case AUDIT_AA: return "AA";
        case AUDIT_APPARMOR_AUDIT: return "APPARMOR_AUDIT";
        case AUDIT_APPARMOR_ALLOWED: return "APPARMOR_ALLOWED";
        case AUDIT_APPARMOR_DENIED: return "APPARMOR_DENIED";
        case AUDIT_APPARMOR_HINT: return "APPARMOR_HINT";
        case AUDIT_APPARMOR_STATUS: return "APPARMOR_STATUS";
        case AUDIT_APPARMOR_ERROR: return "APPARMOR_ERROR";
        case AUDIT_APPARMOR_KILL: return "APPARMOR_KILL";
        case AUDIT_ANOM_PROMISCUOUS: return "ANOM_PROMISCUOUS";
        case AUDIT_ANOM_ABEND: return "ANOM_ABEND";
        case AUDIT_ANOM_LINK: return "ANOM_LINK";
        case AUDIT_ANOM_CREAT: return "ANOM_CREAT";
        case AUDIT_INTEGRITY_DATA: return "INTEGRITY_DATA";
        case AUDIT_INTEGRITY_METADATA: return "INTEGRITY_METADATA";
        case AUDIT_INTEGRITY_STATUS: return "INTEGRITY_STATUS";
        case AUDIT_INTEGRITY_HASH: return "INTEGRITY_HASH";
        case AUDIT_INTEGRITY_PCR: return "INTEGRITY_PCR";
        case AUDIT_INTEGRITY_RULE: return "INTEGRITY_RULE";
        case AUDIT_INTEGRITY_EVM_XATTR: return "INTEGRITY_EVM_XATTR";
        case AUDIT_INTEGRITY_POLICY_RULE: return "INTEGRITY_POLICY_RULE";
        case AUDIT_KERNEL: return "KERNEL";
        case AUDIT_ANOM_LOGIN_FAILURES: return "ANOM_LOGIN_FAILURES";
        case AUDIT_ANOM_LOGIN_TIME: return "ANOM_LOGIN_TIME";
        case AUDIT_ANOM_LOGIN_SESSIONS: return "ANOM_LOGIN_SESSIONS";
        case AUDIT_ANOM_LOGIN_ACCT: return "ANOM_LOGIN_ACCT";
        case AUDIT_ANOM_LOGIN_LOCATION: return "ANOM_LOGIN_LOCATION";
        case AUDIT_ANOM_MAX_DAC: return "ANOM_MAX_DAC";
        case AUDIT_ANOM_MAX_MAC: return "ANOM_MAX_MAC";
        case AUDIT_ANOM_AMTU_FAIL: return "ANOM_AMTU_FAIL";
        case AUDIT_ANOM_RBAC_FAIL: return "ANOM_RBAC_FAIL";
        case AUDIT_ANOM_RBAC_INTEGRITY_FAIL: return "ANOM_RBAC_INTEGRITY_FAIL";
        case AUDIT_ANOM_CRYPTO_FAIL: return "ANOM_CRYPTO_FAIL";
        case AUDIT_ANOM_ACCESS_FS: return "ANOM_ACCESS_FS";
        case AUDIT_ANOM_EXEC: return "ANOM_EXEC";
        case AUDIT_ANOM_MK_EXEC: return "ANOM_MK_EXEC";
        case AUDIT_ANOM_ADD_ACCT: return "ANOM_ADD_ACCT";
        case AUDIT_ANOM_DEL_ACCT: return "ANOM_DEL_ACCT";
        case AUDIT_ANOM_MOD_ACCT: return "ANOM_MOD_ACCT";
        case AUDIT_ANOM_ROOT_TRANS: return "ANOM_ROOT_TRANS";
        case AUDIT_ANOM_LOGIN_SERVICE: return "ANOM_LOGIN_SERVICE";
        case AUDIT_ANOM_LOGIN_ROOT: return "ANOM_LOGIN_ROOT";
        case AUDIT_ANOM_ORIGIN_FAILURES: return "ANOM_ORIGIN_FAILURES";
        case AUDIT_ANOM_SESSION: return "ANOM_SESSION";
        case AUDIT_RESP_ANOMALY: return "RESP_ANOMALY";
        case AUDIT_RESP_ALERT: return "RESP_ALERT";
        case AUDIT_RESP_KILL_PROC: return "RESP_KILL_PROC";
        case AUDIT_RESP_TERM_ACCESS: return "RESP_TERM_ACCESS";
        case AUDIT_RESP_ACCT_REMOTE: return "RESP_ACCT_REMOTE";
        case AUDIT_RESP_ACCT_LOCK_TIMED: return "RESP_ACCT_LOCK_TIMED";
        case AUDIT_RESP_ACCT_UNLOCK_TIMED: return "RESP_ACCT_UNLOCK_TIMED";
        case AUDIT_RESP_ACCT_LOCK: return "RESP_ACCT_LOCK";
        case AUDIT_RESP_TERM_LOCK: return "RESP_TERM_LOCK";
        case AUDIT_RESP_SEBOOL: return "RESP_SEBOOL";
        case AUDIT_RESP_EXEC: return "RESP_EXEC";
        case AUDIT_RESP_SINGLE: return "RESP_SINGLE";
        case AUDIT_RESP_HALT: return "RESP_HALT";
        case AUDIT_RESP_ORIGIN_BLOCK: return "RESP_ORIGIN_BLOCK";
        case AUDIT_RESP_ORIGIN_BLOCK_TIMED: return "RESP_ORIGIN_BLOCK_TIMED";
        case AUDIT_RESP_ORIGIN_UNBLOCK_TIMED: return "RESP_ORIGIN_UNBLOCK_TIMED";
        case AUDIT_USER_ROLE_CHANGE: return "USER_ROLE_CHANGE";
        case AUDIT_ROLE_ASSIGN: return "ROLE_ASSIGN";
        case AUDIT_ROLE_REMOVE: return "ROLE_REMOVE";
        case AUDIT_LABEL_OVERRIDE: return "LABEL_OVERRIDE";
        case AUDIT_LABEL_LEVEL_CHANGE: return "LABEL_LEVEL_CHANGE";
        case AUDIT_USER_LABELED_EXPORT: return "USER_LABELED_EXPORT";
        case AUDIT_USER_UNLABELED_EXPORT: return "USER_UNLABELED_EXPORT";
        case AUDIT_DEV_ALLOC: return "DEV_ALLOC";
        case AUDIT_DEV_DEALLOC: return "DEV_DEALLOC";
        case AUDIT_FS_RELABEL: return "FS_RELABEL";
        case AUDIT_USER_MAC_POLICY_LOAD: return "USER_MAC_POLICY_LOAD";
        case AUDIT_ROLE_MODIFY: return "ROLE_MODIFY";
        case AUDIT_USER_MAC_CONFIG_CHANGE: return "USER_MAC_CONFIG_CHANGE";
        case AUDIT_USER_MAC_STATUS: return "USER_MAC_STATUS";
        case AUDIT_CRYPTO_TEST_USER: return "CRYPTO_TEST_USER";
        case AUDIT_CRYPTO_PARAM_CHANGE_USER: return "CRYPTO_PARAM_CHANGE_USER";
        case AUDIT_CRYPTO_LOGIN: return "CRYPTO_LOGIN";
        case AUDIT_CRYPTO_LOGOUT: return "CRYPTO_LOGOUT";
        case AUDIT_CRYPTO_KEY_USER: return "CRYPTO_KEY_USER";
        case AUDIT_CRYPTO_FAILURE_USER: return "CRYPTO_FAILURE_USER";
        case AUDIT_CRYPTO_REPLAY_USER: return "CRYPTO_REPLAY_USER";
        case AUDIT_CRYPTO_SESSION: return "CRYPTO_SESSION";
        case AUDIT_CRYPTO_IKE_SA: return "CRYPTO_IKE_SA";
        case AUDIT_CRYPTO_IPSEC_SA: return "CRYPTO_IPSEC_SA";
        case AUDIT_VIRT_CONTROL: return "VIRT_CONTROL";
        case AUDIT_VIRT_RESOURCE: return "VIRT_RESOURCE";
        case AUDIT_VIRT_MACHINE_ID: return "VIRT_MACHINE_ID";
        case AUDIT_VIRT_INTEGRITY_CHECK: return "VIRT_INTEGRITY_CHECK";
        case AUDIT_VIRT_CREATE: return "VIRT_CREATE";
        case AUDIT_VIRT_DESTROY: return "VIRT_DESTROY";
        case AUDIT_VIRT_MIGRATE_IN: return "VIRT_MIGRATE_IN";
        case AUDIT_VIRT_MIGRATE_OUT: return "VIRT_MIGRATE_OUT";
        case AUDIT_MESSAGE_TEXT_MAX: return "MESSAGE_TEXT_MAX";
        default: return NULL;
        }
}
