mirror of
https://github.com/tailix/kernel.git
synced 2025-03-03 16:04:28 -05:00
Improve process code
This commit is contained in:
parent
562c5bbe03
commit
09c5afb05e
2 changed files with 8 additions and 11 deletions
|
@ -27,8 +27,7 @@ enum KernelMQ_Process_List_InitResult KernelMQ_Process_List_init(
|
||||||
const enum KernelMQ_Process_List_InitResult create_mod_process_result =
|
const enum KernelMQ_Process_List_InitResult create_mod_process_result =
|
||||||
KernelMQ_Process_create_from_module(
|
KernelMQ_Process_create_from_module(
|
||||||
&(*process_list)[mod_index + 1],
|
&(*process_list)[mod_index + 1],
|
||||||
kinfo,
|
&kinfo->modules[mod_index]
|
||||||
mod_index
|
|
||||||
);
|
);
|
||||||
|
|
||||||
if (create_mod_process_result != KERNELMQ_PROCESS_LIST_INIT_RESULT_OK) {
|
if (create_mod_process_result != KERNELMQ_PROCESS_LIST_INIT_RESULT_OK) {
|
||||||
|
@ -82,13 +81,12 @@ enum KernelMQ_Process_List_InitResult KernelMQ_Process_create_from_kernel(
|
||||||
|
|
||||||
enum KernelMQ_Process_List_InitResult KernelMQ_Process_create_from_module(
|
enum KernelMQ_Process_List_InitResult KernelMQ_Process_create_from_module(
|
||||||
struct KernelMQ_Process *const process,
|
struct KernelMQ_Process *const process,
|
||||||
const struct KernelMQ_Info *const kinfo,
|
const struct KernelMQ_Info_Module *const kinfo_module
|
||||||
const unsigned int module_index
|
|
||||||
) {
|
) {
|
||||||
process->is_present = 1;
|
process->is_present = 1;
|
||||||
process->created_from = KERNELMQ_PROCESS_CREATED_FROM_MODULE;
|
process->created_from = KERNELMQ_PROCESS_CREATED_FROM_MODULE;
|
||||||
|
|
||||||
const unsigned int cmdline_slen = kstrlen(kinfo->modules[module_index].cmdline);
|
const unsigned int cmdline_slen = kstrlen(kinfo_module->cmdline);
|
||||||
|
|
||||||
if (cmdline_slen > KERNELMQ_PROCESS_CMDLINE_SLEN_MAX) {
|
if (cmdline_slen > KERNELMQ_PROCESS_CMDLINE_SLEN_MAX) {
|
||||||
return KERNELMQ_PROCESS_LIST_INIT_RESULT_CMDLINE_TOO_LONG;
|
return KERNELMQ_PROCESS_LIST_INIT_RESULT_CMDLINE_TOO_LONG;
|
||||||
|
@ -96,15 +94,15 @@ enum KernelMQ_Process_List_InitResult KernelMQ_Process_create_from_module(
|
||||||
|
|
||||||
kstrncpy(
|
kstrncpy(
|
||||||
process->cmdline,
|
process->cmdline,
|
||||||
kinfo->modules[module_index].cmdline,
|
kinfo_module->cmdline,
|
||||||
cmdline_slen
|
cmdline_slen
|
||||||
);
|
);
|
||||||
|
|
||||||
process->areas_length = 1;
|
process->areas_length = 1;
|
||||||
|
|
||||||
const unsigned long long base = kinfo->modules[module_index].base;
|
const unsigned long long base = kinfo_module->base;
|
||||||
const unsigned long long size = kinfo->modules[module_index].size;
|
const unsigned long long size = kinfo_module->size;
|
||||||
const unsigned long long limit = kinfo->modules[module_index].limit;
|
const unsigned long long limit = kinfo_module->limit;
|
||||||
|
|
||||||
if (base > 0xFFFFFFFF || size > 0xFFFFFFFF || limit > 0xFFFFFFFF) {
|
if (base > 0xFFFFFFFF || size > 0xFFFFFFFF || limit > 0xFFFFFFFF) {
|
||||||
return KERNELMQ_PROCESS_LIST_INIT_RESULT_ADDR_TOO_BIG;
|
return KERNELMQ_PROCESS_LIST_INIT_RESULT_ADDR_TOO_BIG;
|
||||||
|
|
|
@ -61,8 +61,7 @@ __attribute__((nonnull));
|
||||||
|
|
||||||
enum KernelMQ_Process_List_InitResult KernelMQ_Process_create_from_module(
|
enum KernelMQ_Process_List_InitResult KernelMQ_Process_create_from_module(
|
||||||
struct KernelMQ_Process *process,
|
struct KernelMQ_Process *process,
|
||||||
const struct KernelMQ_Info *kinfo,
|
const struct KernelMQ_Info_Module *kinfo_module
|
||||||
unsigned int module_index
|
|
||||||
)
|
)
|
||||||
__attribute__((nonnull));
|
__attribute__((nonnull));
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue