Bitdefender Hypervisor Memory Introspection
uninit.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2020 Bitdefender
3  * SPDX-License-Identifier: Apache-2.0
4  */
5 #ifndef _UNINIT_H_
6 #define _UNINIT_H_
7 
8 typedef void * (vfree_fn)(void *addr);
9 typedef int (change_page_attr_set_clr)(unsigned long *addr, int numpages, unsigned long mask_set, unsigned long mask_clr,
10  int force_split, int in_flag, void **pages);
11 
12 #pragma pack(push, 1)
13 struct data {
15  struct {
16  unsigned long hypercall;
17  unsigned long completion;
18  unsigned long error;
19  } token;
20 
22  struct {
23  vfree_fn *vfree;
25  } func;
26 
28  struct {
30  void *vmalloc_ptr;
31 
32  unsigned long mask_clr;
33  unsigned long mask_set;
34  } args;
35 };
36 #pragma pack(pop)
37 
38 #endif // !_UNINIT_H_
struct data::@2 args
The arguments of the agent.
unsigned long mask_set
The set mask for the allocated memory region.
Definition: uninit.h:33
struct data::@0 token
The tokens used to communicate with Intocore.
unsigned long hypercall
Definition: kthread.c:17
void * vmalloc_ptr
The pointer returned by 'vmalloc'.
Definition: uninit.h:30
void *() vfree_fn(void *addr)
Definition: uninit.h:8
void * module_alloc_ptr
The pointer returned by 'module_alloc'.
Definition: uninit.h:29
int() change_page_attr_set_clr(unsigned long *addr, int numpages, unsigned long mask_set, unsigned long mask_clr, int force_split, int in_flag, void **pages)
Definition: uninit.h:9
change_page_attr_set_clr * change_page_attr_set_clr
Definition: uninit.h:24
struct data::@1 func
The functions used by this agent.
change_page_attr_set_clr_fn * change_page_attr_set_clr
Definition: init.h:25
unsigned long mask_clr
The clear mask for the allocated memory region.
Definition: uninit.h:32
unsigned long completion
Definition: kthread.c:18
vfree_fn * vfree
Definition: deploy.c:37
unsigned long error
Definition: kthread.c:19
Definition: kthread.c:14