cn_proc.h
001:
002:
003:
004:
005:
006: <aquynh@gmail.com>
007: <guillaume.thouvenin@bull.net>
008:
009:
010:
011:
012:
013:
014:
015:
016:
017:
018: #ifndef CN_PROC_H
019: #define CN_PROC_H
020:
021: #include <linux/types.h>
022:
023:
024:
025:
026:
027: enum proc_cn_mcast_op {
028: PROC_CN_MCAST_LISTEN = 1,
029: PROC_CN_MCAST_IGNORE = 2
030: };
031:
032:
033:
034:
035:
036:
037:
038:
039:
040:
041:
042:
043:
044:
045: struct proc_event {
046: enum what {
047:
048:
049:
050: PROC_EVENT_NONE = 0x00000000,
051: PROC_EVENT_FORK = 0x00000001,
052: PROC_EVENT_EXEC = 0x00000002,
053: PROC_EVENT_UID = 0x00000004,
054: PROC_EVENT_GID = 0x00000040,
055: PROC_EVENT_SID = 0x00000080,
056: PROC_EVENT_PTRACE = 0x00000100,
057: PROC_EVENT_COMM = 0x00000200,
058:
059:
060: PROC_EVENT_EXIT = 0x80000000
061: } what;
062: __u32 cpu;
063: __u64 __attribute__((aligned(8))) timestamp_ns;
064:
065: union {
066: struct {
067: __u32 err;
068: } ack;
069:
070: struct fork_proc_event {
071: __kernel_pid_t parent_pid;
072: __kernel_pid_t parent_tgid;
073: __kernel_pid_t child_pid;
074: __kernel_pid_t child_tgid;
075: } fork;
076:
077: struct exec_proc_event {
078: __kernel_pid_t process_pid;
079: __kernel_pid_t process_tgid;
080: } exec;
081:
082: struct id_proc_event {
083: __kernel_pid_t process_pid;
084: __kernel_pid_t process_tgid;
085: union {
086: __u32 ruid;
087: __u32 rgid;
088: } r;
089: union {
090: __u32 euid;
091: __u32 egid;
092: } e;
093: } id;
094:
095: struct sid_proc_event {
096: __kernel_pid_t process_pid;
097: __kernel_pid_t process_tgid;
098: } sid;
099:
100: struct ptrace_proc_event {
101: __kernel_pid_t process_pid;
102: __kernel_pid_t process_tgid;
103: __kernel_pid_t tracer_pid;
104: __kernel_pid_t tracer_tgid;
105: } ptrace;
106:
107: struct comm_proc_event {
108: __kernel_pid_t process_pid;
109: __kernel_pid_t process_tgid;
110: char comm[16];
111: } comm;
112:
113: struct exit_proc_event {
114: __kernel_pid_t process_pid;
115: __kernel_pid_t process_tgid;
116: __u32 exit_code, exit_signal;
117: } exit;
118: } event_data;
119: };
120:
121: #endif
122:
© Andrew Scott 2006 -
2025,
All Rights Reserved