thesis/paper/artifacts/include/lkm.h
2025-02-19 17:58:57 +01:00

76 lines
No EOL
1.3 KiB
C

#pragma once
#define LKM_ALLOC 100
#define LKM_FREE 101
#define LKM_READ 102
#define LKM_WRITE 103
#define LKM_ALLOC_LOCATION 104
#define LKM_DPM_TEST 105
#define LKM_ACCESS_PRIMITIVE 106
#define LKM_BPF_DPM_SPLIT 107
#define LKM_MSG_MSG_LEAK 108
#define LKM_DPM_LEAK 109
#define LKM_VIRTUAL_BASE_LEAK 110
#define LKM_STACK_LEAK 111
#define LKM_CODE_LEAK 112
#define LKM_VMEMMAP_LEAK 113
#define LKM_VMALLOC_BASE_LEAK 114
#define LKM_SEQ_FILE_LEAK 115
#define LKM_CRED_LEAK 116
#define LKM_FILE_LEAK 117
#define LKM_ARB_FREE 118
#define LKM_PIPE_BUFFER_LEAK 119
#define LKM_PAGETABLE_WALK 120
#define LKM_IS_4KB 121
typedef union {
struct write {
size_t kaddr;
size_t value;
} wr;
struct read {
size_t kaddr;
size_t uaddr;
} rd;
struct access_primitive {
size_t addr;
} ap;
struct dpm_split {
size_t size;
} dpms;
struct msg_msg_rd {
size_t uaddr;
size_t msqid;
size_t mtype;
} mrd;
struct dpm_rd {
size_t uaddr;
} drd;
struct alloc {
size_t id;
size_t size;
} al;
struct free {
size_t id;
} fr;
struct file_rd {
size_t fd;
size_t uaddr;
} frd;
struct pipe_buffer_rd {
size_t fd;
size_t uaddr;
size_t rdend;
} pbrd;
struct arb_free {
size_t kaddr;
} af;
struct pagetable_walk {
size_t uaddr;
size_t pgde;
size_t p4de;
size_t pude;
size_t pmde;
size_t pte;
} ptw;
} msg_t;