1
0
Fork 0
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:
Alex Kotov 2020-11-26 17:01:38 +05:00
parent 562c5bbe03
commit 09c5afb05e
Signed by: kotovalexarian
GPG key ID: 553C0EBBEB5D5F08
2 changed files with 8 additions and 11 deletions

View file

@ -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;

View file

@ -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));