summaryrefslogtreecommitdiff
path: root/service/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'service/main.c')
-rw-r--r--service/main.c39
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;
}