linux/include/linux/audit.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0-or-later */
   2/* audit.h -- Auditing support
   3 *
   4 * Copyright 2003-2004 Red Hat Inc., Durham, North Carolina.
   5 * All Rights Reserved.
   6 *
   7 * Written by Rickard E. (Rik) Faith <faith@redhat.com>
   8 */
   9#ifndef _LINUX_AUDIT_H_
  10#define _LINUX_AUDIT_H_
  11
  12#include <linux/sched.h>
  13#include <linux/ptrace.h>
  14#include <uapi/linux/audit.h>
  15#include <uapi/linux/netfilter/nf_tables.h>
  16
  17#define AUDIT_INO_UNSET ((unsigned long)-1)
  18#define AUDIT_DEV_UNSET ((dev_t)-1)
  19
  20struct audit_sig_info {
  21        uid_t           uid;
  22        pid_t           pid;
  23        char            ctx[];
  24};
  25
  26struct audit_buffer;
  27struct audit_context;
  28struct inode;
  29struct netlink_skb_parms;
  30struct path;
  31struct linux_binprm;
  32struct mq_attr;
  33struct mqstat;
  34struct audit_watch;
  35struct audit_tree;
  36struct sk_buff;
  37
  38struct audit_krule {
  39        u32                     pflags;
  40        u32                     flags;
  41        u32                     listnr;
  42        u32                     action;
  43        u32                     mask[AUDIT_BITMASK_SIZE];
  44        u32                     buflen; /* for data alloc on list rules */
  45        u32                     field_count;
  46        char                    *filterkey; /* ties events to rules */
  47        struct audit_field      *fields;
  48        struct audit_field      *arch_f; /* quick access to arch field */
  49        struct audit_field      *inode_f; /* quick access to an inode field */
  50        struct audit_watch      *watch; /* associated watch */
  51        struct audit_tree       *tree;  /* associated watched tree */
  52        struct audit_fsnotify_mark      *exe;
  53        struct list_head        rlist;  /* entry in audit_{watch,tree}.rules list */
  54        struct list_head        list;   /* for AUDIT_LIST* purposes only */
  55        u64                     prio;
  56};
  57
  58/* Flag to indicate legacy AUDIT_LOGINUID unset usage */
  59#define AUDIT_LOGINUID_LEGACY           0x1
  60
  61struct audit_field {
  62        u32                             type;
  63        union {
  64                u32                     val;
  65                kuid_t                  uid;
  66                kgid_t                  gid;
  67                struct {
  68                        char            *lsm_str;
  69                        void            *lsm_rule;
  70                };
  71        };
  72        u32                             op;
  73};
  74
  75enum audit_ntp_type {
  76        AUDIT_NTP_OFFSET,
  77        AUDIT_NTP_FREQ,
  78        AUDIT_NTP_STATUS,
  79        AUDIT_NTP_TAI,
  80        AUDIT_NTP_TICK,
  81        AUDIT_NTP_ADJUST,
  82
  83        AUDIT_NTP_NVALS /* count */
  84};
  85
  86#ifdef CONFIG_AUDITSYSCALL
  87struct audit_ntp_val {
  88        long long oldval, newval;
  89};
  90
  91struct audit_ntp_data {
  92        struct audit_ntp_val vals[AUDIT_NTP_NVALS];
  93};
  94#else
  95struct audit_ntp_data {};
  96#endif
  97
  98enum audit_nfcfgop {
  99        AUDIT_XT_OP_REGISTER,
 100        AUDIT_XT_OP_REPLACE,
 101        AUDIT_XT_OP_UNREGISTER,
 102        AUDIT_NFT_OP_TABLE_REGISTER,
 103        AUDIT_NFT_OP_TABLE_UNREGISTER,
 104        AUDIT_NFT_OP_CHAIN_REGISTER,
 105        AUDIT_NFT_OP_CHAIN_UNREGISTER,
 106        AUDIT_NFT_OP_RULE_REGISTER,
 107        AUDIT_NFT_OP_RULE_UNREGISTER,
 108        AUDIT_NFT_OP_SET_REGISTER,
 109        AUDIT_NFT_OP_SET_UNREGISTER,
 110        AUDIT_NFT_OP_SETELEM_REGISTER,
 111        AUDIT_NFT_OP_SETELEM_UNREGISTER,
 112        AUDIT_NFT_OP_GEN_REGISTER,
 113        AUDIT_NFT_OP_OBJ_REGISTER,
 114        AUDIT_NFT_OP_OBJ_UNREGISTER,
 115        AUDIT_NFT_OP_OBJ_RESET,
 116        AUDIT_NFT_OP_FLOWTABLE_REGISTER,
 117        AUDIT_NFT_OP_FLOWTABLE_UNREGISTER,
 118        AUDIT_NFT_OP_INVALID,
 119};
 120
 121extern int is_audit_feature_set(int which);
 122
 123extern int __init audit_register_class(int class, unsigned *list);
 124extern int audit_classify_syscall(int abi, unsigned syscall);
 125extern int audit_classify_arch(int arch);
 126/* only for compat system calls */
 127extern unsigned compat_write_class[];
 128extern unsigned compat_read_class[];
 129extern unsigned compat_dir_class[];
 130extern unsigned compat_chattr_class[];
 131extern unsigned compat_signal_class[];
 132
 133extern int audit_classify_compat_syscall(int abi, unsigned syscall);
 134
 135/* audit_names->type values */
 136#define AUDIT_TYPE_UNKNOWN      0       /* we don't know yet */
 137#define AUDIT_TYPE_NORMAL       1       /* a "normal" audit record */
 138#define AUDIT_TYPE_PARENT       2       /* a parent audit record */
 139#define AUDIT_TYPE_CHILD_DELETE 3       /* a child being deleted */
 140#define AUDIT_TYPE_CHILD_CREATE 4       /* a child being created */
 141
 142/* maximized args number that audit_socketcall can process */
 143#define AUDITSC_ARGS            6
 144
 145/* bit values for ->signal->audit_tty */
 146#define AUDIT_TTY_ENABLE        BIT(0)
 147#define AUDIT_TTY_LOG_PASSWD    BIT(1)
 148
 149struct filename;
 150
 151#define AUDIT_OFF       0
 152#define AUDIT_ON        1
 153#define AUDIT_LOCKED    2
 154#ifdef CONFIG_AUDIT
 155/* These are defined in audit.c */
 156                                /* Public API */
 157extern __printf(4, 5)
 158void audit_log(struct audit_context *ctx, gfp_t gfp_mask, int type,
 159               const char *fmt, ...);
 160
 161extern struct audit_buffer *audit_log_start(struct audit_context *ctx, gfp_t gfp_mask, int type);
 162extern __printf(2, 3)
 163void audit_log_format(struct audit_buffer *ab, const char *fmt, ...);
 164extern void                 audit_log_end(struct audit_buffer *ab);
 165extern bool                 audit_string_contains_control(const char *string,
 166                                                          size_t len);
 167extern void                 audit_log_n_hex(struct audit_buffer *ab,
 168                                          const unsigned char *buf,
 169                                          size_t len);
 170extern void                 audit_log_n_string(struct audit_buffer *ab,
 171                                               const char *buf,
 172                                               size_t n);
 173extern void                 audit_log_n_untrustedstring(struct audit_buffer *ab,
 174                                                        const char *string,
 175                                                        size_t n);
 176extern void                 audit_log_untrustedstring(struct audit_buffer *ab,
 177                                                      const char *string);
 178extern void                 audit_log_d_path(struct audit_buffer *ab,
 179                                             const char *prefix,
 180                                             const struct path *path);
 181extern void                 audit_log_key(struct audit_buffer *ab,
 182                                          char *key);
 183extern void                 audit_log_path_denied(int type,
 184                                                  const char *operation);
 185extern void                 audit_log_lost(const char *message);
 186
 187extern int audit_log_task_context(struct audit_buffer *ab);
 188extern void audit_log_task_info(struct audit_buffer *ab);
 189
 190extern int                  audit_update_lsm_rules(void);
 191
 192                                /* Private API (for audit.c only) */
 193extern int audit_rule_change(int type, int seq, void *data, size_t datasz);
 194extern int audit_list_rules_send(struct sk_buff *request_skb, int seq);
 195
 196extern int audit_set_loginuid(kuid_t loginuid);
 197
 198static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
 199{
 200        return tsk->loginuid;
 201}
 202
 203static inline unsigned int audit_get_sessionid(struct task_struct *tsk)
 204{
 205        return tsk->sessionid;
 206}
 207
 208extern u32 audit_enabled;
 209
 210extern int audit_signal_info(int sig, struct task_struct *t);
 211
 212#else /* CONFIG_AUDIT */
 213static inline __printf(4, 5)
 214void audit_log(struct audit_context *ctx, gfp_t gfp_mask, int type,
 215               const char *fmt, ...)
 216{ }
 217static inline struct audit_buffer *audit_log_start(struct audit_context *ctx,
 218                                                   gfp_t gfp_mask, int type)
 219{
 220        return NULL;
 221}
 222static inline __printf(2, 3)
 223void audit_log_format(struct audit_buffer *ab, const char *fmt, ...)
 224{ }
 225static inline void audit_log_end(struct audit_buffer *ab)
 226{ }
 227static inline void audit_log_n_hex(struct audit_buffer *ab,
 228                                   const unsigned char *buf, size_t len)
 229{ }
 230static inline void audit_log_n_string(struct audit_buffer *ab,
 231                                      const char *buf, size_t n)
 232{ }
 233static inline void  audit_log_n_untrustedstring(struct audit_buffer *ab,
 234                                                const char *string, size_t n)
 235{ }
 236static inline void audit_log_untrustedstring(struct audit_buffer *ab,
 237                                             const char *string)
 238{ }
 239static inline void audit_log_d_path(struct audit_buffer *ab,
 240                                    const char *prefix,
 241                                    const struct path *path)
 242{ }
 243static inline void audit_log_key(struct audit_buffer *ab, char *key)
 244{ }
 245static inline void audit_log_path_denied(int type, const char *operation)
 246{ }
 247static inline int audit_log_task_context(struct audit_buffer *ab)
 248{
 249        return 0;
 250}
 251static inline void audit_log_task_info(struct audit_buffer *ab)
 252{ }
 253
 254static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
 255{
 256        return INVALID_UID;
 257}
 258
 259static inline unsigned int audit_get_sessionid(struct task_struct *tsk)
 260{
 261        return AUDIT_SID_UNSET;
 262}
 263
 264#define audit_enabled AUDIT_OFF
 265
 266static inline int audit_signal_info(int sig, struct task_struct *t)
 267{
 268        return 0;
 269}
 270
 271#endif /* CONFIG_AUDIT */
 272
 273#ifdef CONFIG_AUDIT_COMPAT_GENERIC
 274#define audit_is_compat(arch)  (!((arch) & __AUDIT_ARCH_64BIT))
 275#else
 276#define audit_is_compat(arch)  false
 277#endif
 278
 279#define AUDIT_INODE_PARENT      1       /* dentry represents the parent */
 280#define AUDIT_INODE_HIDDEN      2       /* audit record should be hidden */
 281#define AUDIT_INODE_NOEVAL      4       /* audit record incomplete */
 282
 283#ifdef CONFIG_AUDITSYSCALL
 284#include <asm/syscall.h> /* for syscall_get_arch() */
 285
 286/* These are defined in auditsc.c */
 287                                /* Public API */
 288extern int  audit_alloc(struct task_struct *task);
 289extern void __audit_free(struct task_struct *task);
 290extern void __audit_syscall_entry(int major, unsigned long a0, unsigned long a1,
 291                                  unsigned long a2, unsigned long a3);
 292extern void __audit_syscall_exit(int ret_success, long ret_value);
 293extern struct filename *__audit_reusename(const __user char *uptr);
 294extern void __audit_getname(struct filename *name);
 295extern void __audit_getcwd(void);
 296extern void __audit_inode(struct filename *name, const struct dentry *dentry,
 297                                unsigned int flags);
 298extern void __audit_file(const struct file *);
 299extern void __audit_inode_child(struct inode *parent,
 300                                const struct dentry *dentry,
 301                                const unsigned char type);
 302extern void audit_seccomp(unsigned long syscall, long signr, int code);
 303extern void audit_seccomp_actions_logged(const char *names,
 304                                         const char *old_names, int res);
 305extern void __audit_ptrace(struct task_struct *t);
 306
 307static inline void audit_set_context(struct task_struct *task, struct audit_context *ctx)
 308{
 309        task->audit_context = ctx;
 310}
 311
 312static inline struct audit_context *audit_context(void)
 313{
 314        return current->audit_context;
 315}
 316
 317static inline bool audit_dummy_context(void)
 318{
 319        void *p = audit_context();
 320        return !p || *(int *)p;
 321}
 322static inline void audit_free(struct task_struct *task)
 323{
 324        if (unlikely(task->audit_context))
 325                __audit_free(task);
 326}
 327static inline void audit_syscall_entry(int major, unsigned long a0,
 328                                       unsigned long a1, unsigned long a2,
 329                                       unsigned long a3)
 330{
 331        if (unlikely(audit_context()))
 332                __audit_syscall_entry(major, a0, a1, a2, a3);
 333}
 334static inline void audit_syscall_exit(void *pt_regs)
 335{
 336        if (unlikely(audit_context())) {
 337                int success = is_syscall_success(pt_regs);
 338                long return_code = regs_return_value(pt_regs);
 339
 340                __audit_syscall_exit(success, return_code);
 341        }
 342}
 343static inline struct filename *audit_reusename(const __user char *name)
 344{
 345        if (unlikely(!audit_dummy_context()))
 346                return __audit_reusename(name);
 347        return NULL;
 348}
 349static inline void audit_getname(struct filename *name)
 350{
 351        if (unlikely(!audit_dummy_context()))
 352                __audit_getname(name);
 353}
 354static inline void audit_getcwd(void)
 355{
 356        if (unlikely(audit_context()))
 357                __audit_getcwd();
 358}
 359static inline void audit_inode(struct filename *name,
 360                                const struct dentry *dentry,
 361                                unsigned int aflags) {
 362        if (unlikely(!audit_dummy_context()))
 363                __audit_inode(name, dentry, aflags);
 364}
 365static inline void audit_file(struct file *file)
 366{
 367        if (unlikely(!audit_dummy_context()))
 368                __audit_file(file);
 369}
 370static inline void audit_inode_parent_hidden(struct filename *name,
 371                                                const struct dentry *dentry)
 372{
 373        if (unlikely(!audit_dummy_context()))
 374                __audit_inode(name, dentry,
 375                                AUDIT_INODE_PARENT | AUDIT_INODE_HIDDEN);
 376}
 377static inline void audit_inode_child(struct inode *parent,
 378                                     const struct dentry *dentry,
 379                                     const unsigned char type) {
 380        if (unlikely(!audit_dummy_context()))
 381                __audit_inode_child(parent, dentry, type);
 382}
 383void audit_core_dumps(long signr);
 384
 385static inline void audit_ptrace(struct task_struct *t)
 386{
 387        if (unlikely(!audit_dummy_context()))
 388                __audit_ptrace(t);
 389}
 390
 391                                /* Private API (for audit.c only) */
 392extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp);
 393extern void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode);
 394extern void __audit_bprm(struct linux_binprm *bprm);
 395extern int __audit_socketcall(int nargs, unsigned long *args);
 396extern int __audit_sockaddr(int len, void *addr);
 397extern void __audit_fd_pair(int fd1, int fd2);
 398extern void __audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr);
 399extern void __audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, unsigned int msg_prio, const struct timespec64 *abs_timeout);
 400extern void __audit_mq_notify(mqd_t mqdes, const struct sigevent *notification);
 401extern void __audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat);
 402extern int __audit_log_bprm_fcaps(struct linux_binprm *bprm,
 403                                  const struct cred *new,
 404                                  const struct cred *old);
 405extern void __audit_log_capset(const struct cred *new, const struct cred *old);
 406extern void __audit_mmap_fd(int fd, int flags);
 407extern void __audit_log_kern_module(char *name);
 408extern void __audit_fanotify(unsigned int response);
 409extern void __audit_tk_injoffset(struct timespec64 offset);
 410extern void __audit_ntp_log(const struct audit_ntp_data *ad);
 411extern void __audit_log_nfcfg(const char *name, u8 af, unsigned int nentries,
 412                              enum audit_nfcfgop op, gfp_t gfp);
 413
 414static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp)
 415{
 416        if (unlikely(!audit_dummy_context()))
 417                __audit_ipc_obj(ipcp);
 418}
 419static inline void audit_fd_pair(int fd1, int fd2)
 420{
 421        if (unlikely(!audit_dummy_context()))
 422                __audit_fd_pair(fd1, fd2);
 423}
 424static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode)
 425{
 426        if (unlikely(!audit_dummy_context()))
 427                __audit_ipc_set_perm(qbytes, uid, gid, mode);
 428}
 429static inline void audit_bprm(struct linux_binprm *bprm)
 430{
 431        if (unlikely(!audit_dummy_context()))
 432                __audit_bprm(bprm);
 433}
 434static inline int audit_socketcall(int nargs, unsigned long *args)
 435{
 436        if (unlikely(!audit_dummy_context()))
 437                return __audit_socketcall(nargs, args);
 438        return 0;
 439}
 440
 441static inline int audit_socketcall_compat(int nargs, u32 *args)
 442{
 443        unsigned long a[AUDITSC_ARGS];
 444        int i;
 445
 446        if (audit_dummy_context())
 447                return 0;
 448
 449        for (i = 0; i < nargs; i++)
 450                a[i] = (unsigned long)args[i];
 451        return __audit_socketcall(nargs, a);
 452}
 453
 454static inline int audit_sockaddr(int len, void *addr)
 455{
 456        if (unlikely(!audit_dummy_context()))
 457                return __audit_sockaddr(len, addr);
 458        return 0;
 459}
 460static inline void audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr)
 461{
 462        if (unlikely(!audit_dummy_context()))
 463                __audit_mq_open(oflag, mode, attr);
 464}
 465static inline void audit_mq_sendrecv(mqd_t mqdes, size_t msg_len, unsigned int msg_prio, const struct timespec64 *abs_timeout)
 466{
 467        if (unlikely(!audit_dummy_context()))
 468                __audit_mq_sendrecv(mqdes, msg_len, msg_prio, abs_timeout);
 469}
 470static inline void audit_mq_notify(mqd_t mqdes, const struct sigevent *notification)
 471{
 472        if (unlikely(!audit_dummy_context()))
 473                __audit_mq_notify(mqdes, notification);
 474}
 475static inline void audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat)
 476{
 477        if (unlikely(!audit_dummy_context()))
 478                __audit_mq_getsetattr(mqdes, mqstat);
 479}
 480
 481static inline int audit_log_bprm_fcaps(struct linux_binprm *bprm,
 482                                       const struct cred *new,
 483                                       const struct cred *old)
 484{
 485        if (unlikely(!audit_dummy_context()))
 486                return __audit_log_bprm_fcaps(bprm, new, old);
 487        return 0;
 488}
 489
 490static inline void audit_log_capset(const struct cred *new,
 491                                   const struct cred *old)
 492{
 493        if (unlikely(!audit_dummy_context()))
 494                __audit_log_capset(new, old);
 495}
 496
 497static inline void audit_mmap_fd(int fd, int flags)
 498{
 499        if (unlikely(!audit_dummy_context()))
 500                __audit_mmap_fd(fd, flags);
 501}
 502
 503static inline void audit_log_kern_module(char *name)
 504{
 505        if (!audit_dummy_context())
 506                __audit_log_kern_module(name);
 507}
 508
 509static inline void audit_fanotify(unsigned int response)
 510{
 511        if (!audit_dummy_context())
 512                __audit_fanotify(response);
 513}
 514
 515static inline void audit_tk_injoffset(struct timespec64 offset)
 516{
 517        /* ignore no-op events */
 518        if (offset.tv_sec == 0 && offset.tv_nsec == 0)
 519                return;
 520
 521        if (!audit_dummy_context())
 522                __audit_tk_injoffset(offset);
 523}
 524
 525static inline void audit_ntp_init(struct audit_ntp_data *ad)
 526{
 527        memset(ad, 0, sizeof(*ad));
 528}
 529
 530static inline void audit_ntp_set_old(struct audit_ntp_data *ad,
 531                                     enum audit_ntp_type type, long long val)
 532{
 533        ad->vals[type].oldval = val;
 534}
 535
 536static inline void audit_ntp_set_new(struct audit_ntp_data *ad,
 537                                     enum audit_ntp_type type, long long val)
 538{
 539        ad->vals[type].newval = val;
 540}
 541
 542static inline void audit_ntp_log(const struct audit_ntp_data *ad)
 543{
 544        if (!audit_dummy_context())
 545                __audit_ntp_log(ad);
 546}
 547
 548static inline void audit_log_nfcfg(const char *name, u8 af,
 549                                   unsigned int nentries,
 550                                   enum audit_nfcfgop op, gfp_t gfp)
 551{
 552        if (audit_enabled)
 553                __audit_log_nfcfg(name, af, nentries, op, gfp);
 554}
 555
 556extern int audit_n_rules;
 557extern int audit_signals;
 558#else /* CONFIG_AUDITSYSCALL */
 559static inline int audit_alloc(struct task_struct *task)
 560{
 561        return 0;
 562}
 563static inline void audit_free(struct task_struct *task)
 564{ }
 565static inline void audit_syscall_entry(int major, unsigned long a0,
 566                                       unsigned long a1, unsigned long a2,
 567                                       unsigned long a3)
 568{ }
 569static inline void audit_syscall_exit(void *pt_regs)
 570{ }
 571static inline bool audit_dummy_context(void)
 572{
 573        return true;
 574}
 575static inline void audit_set_context(struct task_struct *task, struct audit_context *ctx)
 576{ }
 577static inline struct audit_context *audit_context(void)
 578{
 579        return NULL;
 580}
 581static inline struct filename *audit_reusename(const __user char *name)
 582{
 583        return NULL;
 584}
 585static inline void audit_getname(struct filename *name)
 586{ }
 587static inline void audit_getcwd(void)
 588{ }
 589static inline void audit_inode(struct filename *name,
 590                                const struct dentry *dentry,
 591                                unsigned int aflags)
 592{ }
 593static inline void audit_file(struct file *file)
 594{
 595}
 596static inline void audit_inode_parent_hidden(struct filename *name,
 597                                const struct dentry *dentry)
 598{ }
 599static inline void audit_inode_child(struct inode *parent,
 600                                     const struct dentry *dentry,
 601                                     const unsigned char type)
 602{ }
 603static inline void audit_core_dumps(long signr)
 604{ }
 605static inline void audit_seccomp(unsigned long syscall, long signr, int code)
 606{ }
 607static inline void audit_seccomp_actions_logged(const char *names,
 608                                                const char *old_names, int res)
 609{ }
 610static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp)
 611{ }
 612static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid,
 613                                        gid_t gid, umode_t mode)
 614{ }
 615static inline void audit_bprm(struct linux_binprm *bprm)
 616{ }
 617static inline int audit_socketcall(int nargs, unsigned long *args)
 618{
 619        return 0;
 620}
 621
 622static inline int audit_socketcall_compat(int nargs, u32 *args)
 623{
 624        return 0;
 625}
 626
 627static inline void audit_fd_pair(int fd1, int fd2)
 628{ }
 629static inline int audit_sockaddr(int len, void *addr)
 630{
 631        return 0;
 632}
 633static inline void audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr)
 634{ }
 635static inline void audit_mq_sendrecv(mqd_t mqdes, size_t msg_len,
 636                                     unsigned int msg_prio,
 637                                     const struct timespec64 *abs_timeout)
 638{ }
 639static inline void audit_mq_notify(mqd_t mqdes,
 640                                   const struct sigevent *notification)
 641{ }
 642static inline void audit_mq_getsetattr(mqd_t mqdes, struct mq_attr *mqstat)
 643{ }
 644static inline int audit_log_bprm_fcaps(struct linux_binprm *bprm,
 645                                       const struct cred *new,
 646                                       const struct cred *old)
 647{
 648        return 0;
 649}
 650static inline void audit_log_capset(const struct cred *new,
 651                                    const struct cred *old)
 652{ }
 653static inline void audit_mmap_fd(int fd, int flags)
 654{ }
 655
 656static inline void audit_log_kern_module(char *name)
 657{
 658}
 659
 660static inline void audit_fanotify(unsigned int response)
 661{ }
 662
 663static inline void audit_tk_injoffset(struct timespec64 offset)
 664{ }
 665
 666static inline void audit_ntp_init(struct audit_ntp_data *ad)
 667{ }
 668
 669static inline void audit_ntp_set_old(struct audit_ntp_data *ad,
 670                                     enum audit_ntp_type type, long long val)
 671{ }
 672
 673static inline void audit_ntp_set_new(struct audit_ntp_data *ad,
 674                                     enum audit_ntp_type type, long long val)
 675{ }
 676
 677static inline void audit_ntp_log(const struct audit_ntp_data *ad)
 678{ }
 679
 680static inline void audit_ptrace(struct task_struct *t)
 681{ }
 682
 683static inline void audit_log_nfcfg(const char *name, u8 af,
 684                                   unsigned int nentries,
 685                                   enum audit_nfcfgop op, gfp_t gfp)
 686{ }
 687
 688#define audit_n_rules 0
 689#define audit_signals 0
 690#endif /* CONFIG_AUDITSYSCALL */
 691
 692static inline bool audit_loginuid_set(struct task_struct *tsk)
 693{
 694        return uid_valid(audit_get_loginuid(tsk));
 695}
 696
 697#endif
 698