diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/audit.h | 14 | ||||
| -rw-r--r-- | include/linux/mm.h | 1 | ||||
| -rw-r--r-- | include/linux/sched.h | 20 |
3 files changed, 34 insertions, 1 deletions
diff --git a/include/linux/audit.h b/include/linux/audit.h index ec1464df4c60..22cfddb75566 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h | |||
| @@ -79,6 +79,14 @@ extern int is_audit_feature_set(int which); | |||
| 79 | extern int __init audit_register_class(int class, unsigned *list); | 79 | extern int __init audit_register_class(int class, unsigned *list); |
| 80 | extern int audit_classify_syscall(int abi, unsigned syscall); | 80 | extern int audit_classify_syscall(int abi, unsigned syscall); |
| 81 | extern int audit_classify_arch(int arch); | 81 | extern int audit_classify_arch(int arch); |
| 82 | /* only for compat system calls */ | ||
| 83 | extern unsigned compat_write_class[]; | ||
| 84 | extern unsigned compat_read_class[]; | ||
| 85 | extern unsigned compat_dir_class[]; | ||
| 86 | extern unsigned compat_chattr_class[]; | ||
| 87 | extern unsigned compat_signal_class[]; | ||
| 88 | |||
| 89 | extern int __weak audit_classify_compat_syscall(int abi, unsigned syscall); | ||
| 82 | 90 | ||
| 83 | /* audit_names->type values */ | 91 | /* audit_names->type values */ |
| 84 | #define AUDIT_TYPE_UNKNOWN 0 /* we don't know yet */ | 92 | #define AUDIT_TYPE_UNKNOWN 0 /* we don't know yet */ |
| @@ -94,6 +102,12 @@ struct filename; | |||
| 94 | 102 | ||
| 95 | extern void audit_log_session_info(struct audit_buffer *ab); | 103 | extern void audit_log_session_info(struct audit_buffer *ab); |
| 96 | 104 | ||
| 105 | #ifdef CONFIG_AUDIT_COMPAT_GENERIC | ||
| 106 | #define audit_is_compat(arch) (!((arch) & __AUDIT_ARCH_64BIT)) | ||
| 107 | #else | ||
| 108 | #define audit_is_compat(arch) false | ||
| 109 | #endif | ||
| 110 | |||
| 97 | #ifdef CONFIG_AUDITSYSCALL | 111 | #ifdef CONFIG_AUDITSYSCALL |
| 98 | /* These are defined in auditsc.c */ | 112 | /* These are defined in auditsc.c */ |
| 99 | /* Public API */ | 113 | /* Public API */ |
diff --git a/include/linux/mm.h b/include/linux/mm.h index abc848412e3c..bf9811e1321a 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
| @@ -1204,6 +1204,7 @@ void account_page_writeback(struct page *page); | |||
| 1204 | int set_page_dirty(struct page *page); | 1204 | int set_page_dirty(struct page *page); |
| 1205 | int set_page_dirty_lock(struct page *page); | 1205 | int set_page_dirty_lock(struct page *page); |
| 1206 | int clear_page_dirty_for_io(struct page *page); | 1206 | int clear_page_dirty_for_io(struct page *page); |
| 1207 | int get_cmdline(struct task_struct *task, char *buffer, int buflen); | ||
| 1207 | 1208 | ||
| 1208 | /* Is the vma a continuation of the stack vma above it? */ | 1209 | /* Is the vma a continuation of the stack vma above it? */ |
| 1209 | static inline int vma_growsdown(struct vm_area_struct *vma, unsigned long addr) | 1210 | static inline int vma_growsdown(struct vm_area_struct *vma, unsigned long addr) |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 075b3056c0c0..25f54c79f757 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -1719,6 +1719,24 @@ static inline pid_t task_tgid_vnr(struct task_struct *tsk) | |||
| 1719 | } | 1719 | } |
| 1720 | 1720 | ||
| 1721 | 1721 | ||
| 1722 | static inline int pid_alive(const struct task_struct *p); | ||
| 1723 | static inline pid_t task_ppid_nr_ns(const struct task_struct *tsk, struct pid_namespace *ns) | ||
| 1724 | { | ||
| 1725 | pid_t pid = 0; | ||
| 1726 | |||
| 1727 | rcu_read_lock(); | ||
| 1728 | if (pid_alive(tsk)) | ||
| 1729 | pid = task_tgid_nr_ns(rcu_dereference(tsk->real_parent), ns); | ||
| 1730 | rcu_read_unlock(); | ||
| 1731 | |||
| 1732 | return pid; | ||
| 1733 | } | ||
| 1734 | |||
| 1735 | static inline pid_t task_ppid_nr(const struct task_struct *tsk) | ||
| 1736 | { | ||
| 1737 | return task_ppid_nr_ns(tsk, &init_pid_ns); | ||
| 1738 | } | ||
| 1739 | |||
| 1722 | static inline pid_t task_pgrp_nr_ns(struct task_struct *tsk, | 1740 | static inline pid_t task_pgrp_nr_ns(struct task_struct *tsk, |
| 1723 | struct pid_namespace *ns) | 1741 | struct pid_namespace *ns) |
| 1724 | { | 1742 | { |
| @@ -1758,7 +1776,7 @@ static inline pid_t task_pgrp_nr(struct task_struct *tsk) | |||
| 1758 | * | 1776 | * |
| 1759 | * Return: 1 if the process is alive. 0 otherwise. | 1777 | * Return: 1 if the process is alive. 0 otherwise. |
| 1760 | */ | 1778 | */ |
| 1761 | static inline int pid_alive(struct task_struct *p) | 1779 | static inline int pid_alive(const struct task_struct *p) |
| 1762 | { | 1780 | { |
| 1763 | return p->pids[PIDTYPE_PID].pid != NULL; | 1781 | return p->pids[PIDTYPE_PID].pid != NULL; |
| 1764 | } | 1782 | } |
