diff options
Diffstat (limited to 'service/main.c')
| -rw-r--r-- | service/main.c | 39 |
1 files changed, 36 insertions, 3 deletions
diff --git a/service/main.c b/service/main.c index 12a5522..c022b87 100644 --- a/service/main.c +++ b/service/main.c @@ -1,7 +1,42 @@ #include <unistd.h> #include <stdio.h> +#include <fcntl.h> +#include <stdlib.h> -#define KJARNA_REVISION 1 +#include "config.h" +#include <lib/elf.h> + +/* +static int open_kernel(void) +{ + int kernel_fd = open(HAL_PATH, 0, 0); + + printf("kernel path: %s\n", HAL_PATH); + + if (kernel_fd < 0) + { + printf("error: could not open kernel core\n"); + return -1; + } + + Elf64_Ehdr ehdr; + + if (!elf64_validate_fd(kernel_fd, ET_DYN, EM_X86_64)) + { + printf("error: could not validate elf header\n"); + close(kernel_fd); + return -1; + } + + printf("kernel: elf x86_64 dynamic object found\r\n"); + + ssize_t kernel_size = elf64_size_fd(fd); + + printf("kernel image size %zd\n", kernel_size); + + return kernel_fd; +} +*/ int main(int argc, char **argv) { @@ -10,8 +45,6 @@ int main(int argc, char **argv) printf("kjarna %d\n", KJARNA_REVISION); - while (1); - return 0; } |
