92 #define current_task \ 95 asm volatile("mov %[ret], gs:[%[value]]" \ 97 : [value] "rm" ((unsigned long long)hypercall_info.OsSpecificFields.CurrentTaskOffset) : ); \ 102 #define current_cpu \ 105 asm volatile("mov %[ret], gs:[%[value]]" \ 107 : [value] "rm" ((unsigned long long)hypercall_info.OsSpecificFields.CurrentCpuOffset) : ); \ 127 size_t _out_value = 34, _out_param = 0;
129 asm volatile(
"vmcall" :
"+S" (_out_param),
"+a"(_out_value) :
"D"(24),
"b"(
id): );
149 void *
_memcpy (
void *dest,
const void *src,
size_t len)
186 _memcpy(dst, ®s,
sizeof(regs));
237 unsigned long path_struct = 0;
255 unsigned long path_struct = 0;
296 unsigned long flags,
int vm_write)
333 unsigned long newprot,
int dirty_accountable,
int prot_numa)
361 unsigned long pgoff,
void *insert,
void *expand,
362 long *skip_call,
long *saved_vma,
long *next,
long *prev)
381 void vma_adjust(
long _vma,
unsigned long _start,
unsigned long _end,
382 unsigned long _pgoff,
void *_insert,
void *_expand,
383 long *_skip_call,
long saved_vma,
long next,
long prev)
385 long svma = saved_vma;
435 return new_sig ? new_sig : sig;
441 void text_poke(
void *addr,
const void *opcode,
size_t len)
475 void *buf,
int len,
unsigned int gup_flags)
477 if ((gup_flags & 1) == 0) {
struct _LIX_GUEST_OS_SPECIFIC::@265 File
struct _LIX_GUEST_OS_SPECIFIC::@263 Task
struct _LIX_GUEST_OS_SPECIFIC::@262 Mm
#define def_detour_hijack_asm_vars(fn_name, hijack_fn_name)
__default_fn_attr void module_param_sysfs_setup(void *module)
__default_fn_attr void * _memcpy(void *dest, const void *src, size_t len)
#define def_detour_asm_vars(fn_name)
LIX_HYPERCALL_PAGE hypercall_info
__default_fn_attr void text_poke(void *addr, const void *opcode, size_t len)
__default_fn_attr void change_protection(long vma, unsigned long start, unsigned long end, unsigned long newprot, int dirty_accountable, int prot_numa)
unsigned int VmPrevOffset
__default_fn_attr long arch_ptrace(long child, long request)
struct _LIX_GUEST_OS_SPECIFIC::@260 Info
__default_fn_attr char * d_path(void *path_struct)
__default_fn_attr void vma_adjust(long _vma, unsigned long _start, unsigned long _end, unsigned long _pgoff, void *_insert, void *_expand, long *_skip_call, long saved_vma, long next, long prev)
LIX_GUEST_OS_SPECIFIC OsSpecificFields
unsigned long long EnableOptions
__default_fn_attr int complete_signal(int sig, void *task, enum pid_type type)
__default_fn_attr void module_param_sysfs_remove(void *module)
__default_fn_attr void wake_up_new_task(long task)
static __default_fn_attr size_t vmcall(DETOUR_ID id)
def_detour_vars(commit_creds)
def_detour_hijack_vars(mprotect_fixup, vma_wants_writenotify)
__default_fn_attr void expand_downwards(long vma, unsigned long address)
__default_fn_attr size_t process_vm_rw_core(int pid, void *iter, void *rvec, unsigned long riovcnt, unsigned long flags, int vm_write)
__default_fn_attr void store_regs(void)
__default_fn_attr void __access_remote_vm(void *task, void *mm, unsigned long addr, void *buf, int len, unsigned int gup_flags)
#define vmcall_5(id, p1, p2, p3, p4, p5)
__default_fn_attr void do_munmap_rb_erase(unsigned long vma_vm_rb, unsigned long mm_mm_rb)
__default_fn_attr void panic(const char *fmt)
__default_fn_attr void do_exit(long code)
#define __default_fn_attr
#define init_detour_field(fn_name)
__default_fn_attr void ftrace_write(unsigned long ip, const char *val, int size)
#define vmcall_4(id, p1, p2, p3, p4)
LIX_GUEST_DETOUR Detours[det_max_id]
struct _LIX_GUEST_OS_SPECIFIC::@264 Binprm
unsigned int ProtectionBit
#define vmcall_3(id, p1, p2, p3)
__default_fn_attr void arch_jump_label_transform(void *entry, enum jump_label_type type)
__default_fn_attr int begin_new_exec(long binprm)
#define vmcall_2(id, p1, p2)
unsigned int VmNextOffset
__default_fn_attr void pre_vma_adjust(long vma, unsigned long start, unsigned long end, unsigned long pgoff, void *insert, void *expand, long *skip_call, long *saved_vma, long *next, long *prev)
__default_fn_attr void commit_creds(long *creds)
__default_fn_attr void mprotect_fixup_vma_wants_writenotify(unsigned long vma)
static __default_fn_attr bool is_detour_enabled(DETOUR_ID id)
__default_fn_attr void vma_adjust_rb_erase(unsigned long vma_vm_rb, unsigned long mm_mm_rb)
__default_fn_attr void vma_rb_erase(long vma, void *root)
#define PTRACE_SETFPXREGS
unsigned long long ProtectionOptions
__default_fn_attr void __vma_link_rb(void *mm, void *vma, void **rb_link, void *rb_parent)
__default_fn_attr int flush_old_exec(long binprm)
#define init_detour_hijack_field(fn_name, hijack_fn_name)
struct _LIX_GUEST_OS_SPECIFIC::@261 Vma