2017-11-04 06:09:53 -04:00
|
|
|
#ifndef KERNELMQ_INCLUDED_INFO
|
|
|
|
#define KERNELMQ_INCLUDED_INFO 1
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define KERNELMQ_INFO_CMDLINE_SIZE_MAX 256
|
|
|
|
|
|
|
|
#define KERNELMQ_INFO_MODULES_MAX 20
|
|
|
|
#define KERNELMQ_INFO_AREAS_MAX 20
|
|
|
|
|
|
|
|
struct KernelMQ_Info_Module {
|
|
|
|
unsigned long base;
|
|
|
|
unsigned long size;
|
|
|
|
unsigned long limit;
|
|
|
|
|
|
|
|
char cmdline[KERNELMQ_INFO_CMDLINE_SIZE_MAX];
|
|
|
|
};
|
|
|
|
|
|
|
|
struct KernelMQ_Info_Area {
|
2017-11-04 07:43:55 -04:00
|
|
|
unsigned long long base;
|
|
|
|
unsigned long long size;
|
|
|
|
unsigned long long limit;
|
2017-11-04 06:09:53 -04:00
|
|
|
|
|
|
|
unsigned char is_available;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct KernelMQ_Info {
|
|
|
|
char cmdline[KERNELMQ_INFO_CMDLINE_SIZE_MAX];
|
|
|
|
|
|
|
|
struct KernelMQ_Info_Module modules[KERNELMQ_INFO_MODULES_MAX];
|
|
|
|
unsigned int modules_count;
|
|
|
|
|
|
|
|
struct KernelMQ_Info_Area areas[KERNELMQ_INFO_AREAS_MAX];
|
|
|
|
unsigned int areas_count;
|
|
|
|
|
|
|
|
unsigned long mem_lower_base;
|
|
|
|
unsigned long mem_lower_size;
|
|
|
|
unsigned long mem_lower_limit;
|
|
|
|
|
|
|
|
unsigned long mem_upper_base;
|
|
|
|
unsigned long mem_upper_size;
|
|
|
|
unsigned long mem_upper_limit;
|
|
|
|
|
|
|
|
unsigned long kernel_offset;
|
|
|
|
|
|
|
|
unsigned long kernel_phys_base;
|
|
|
|
unsigned long kernel_phys_limit;
|
|
|
|
|
|
|
|
unsigned long kernel_virt_base;
|
|
|
|
unsigned long kernel_virt_limit;
|
|
|
|
|
|
|
|
unsigned long kernel_size;
|
|
|
|
|
|
|
|
unsigned long modules_total_size;
|
|
|
|
unsigned long kernel_and_modules_total_size;
|
|
|
|
};
|
|
|
|
|
2017-11-04 08:01:10 -04:00
|
|
|
unsigned char kernelmq_info_validate_and_copy(struct KernelMQ_Info *dest, const struct KernelMQ_Info *src);
|
|
|
|
|
2017-11-04 06:09:53 -04:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|