2023-10-21 20:27:23 +03:00
|
|
|
|
/**
|
|
|
|
|
* mod.h
|
|
|
|
|
* Заголовочный файл с функциями работы с памятью
|
|
|
|
|
*
|
|
|
|
|
* Данный заголовочный файл содержит определения, которые используются для
|
|
|
|
|
* работы с памятью
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
2023-11-07 22:34:26 +03:00
|
|
|
|
#include <sys.h>
|
|
|
|
|
|
2023-10-21 20:27:23 +03:00
|
|
|
|
#ifndef MOD_H
|
|
|
|
|
#define MOD_H
|
|
|
|
|
|
2023-10-31 19:06:56 +03:00
|
|
|
|
// Максимальное количество модулей 16. Позже перепишем на динамический массив,
|
|
|
|
|
// сейчас для прототипа это не так важно
|
|
|
|
|
#define MOD_MAX 16
|
|
|
|
|
|
2023-11-07 22:34:26 +03:00
|
|
|
|
// Структуры соответствующие ELF заголовкам
|
|
|
|
|
typedef struct {
|
|
|
|
|
unsigned char e_ident[16];
|
|
|
|
|
uint16_t e_type;
|
|
|
|
|
uint16_t e_machine;
|
|
|
|
|
uint32_t e_version;
|
|
|
|
|
uint64_t e_entry;
|
|
|
|
|
uint64_t e_phoff;
|
|
|
|
|
uint64_t e_shoff;
|
|
|
|
|
uint32_t e_flags;
|
|
|
|
|
uint16_t e_ehsize;
|
|
|
|
|
uint16_t e_phentsize;
|
|
|
|
|
uint16_t e_phnum;
|
|
|
|
|
uint16_t e_shentsize;
|
|
|
|
|
uint16_t e_shnum;
|
|
|
|
|
uint16_t e_shstrndx;
|
|
|
|
|
} elf64_header_t;
|
|
|
|
|
|
2023-10-21 20:27:23 +03:00
|
|
|
|
void mod_init( );
|
2024-01-21 19:25:04 +03:00
|
|
|
|
void mod_after_init( );
|
2023-10-31 19:06:56 +03:00
|
|
|
|
void mod_list_show( );
|
2023-11-07 22:34:26 +03:00
|
|
|
|
module_info_t *mod_find(char *tag);
|
2024-01-21 19:25:04 +03:00
|
|
|
|
module_info_t *mod_list_get(uint64_t *count);
|
2023-10-21 20:27:23 +03:00
|
|
|
|
|
|
|
|
|
#endif // mod.h
|