Fix elf interpreter

This commit is contained in:
Alex
2023-04-20 08:07:39 +03:00
parent c20aae9504
commit baacbbdbd7
4 changed files with 41 additions and 41 deletions

View File

@ -20,26 +20,26 @@ int main(int argc, char *argv[], char *envp[])
for (int i = 0; i < 14; i++)
PutCharToKernelConsole("\nHello World!\n"[i]);
print("%p %p %p\n", (void *)(uint64_t)&argc, (void *)&argv, (void *)&envp);
// print("I have %d arguments\n", argc);
// for (int i = 0; i < argc; i++)
// print("argv[%d] = (%p) %s\n", i, argv[i], argv[i]);
print("I have %d arguments\n", argc);
for (int i = 0; i < argc; i++)
print("argv[%d] = (%p) %s\n", i, argv[i], argv[i]);
// int envc = 0;
// while (envp[envc] != NULL)
// envc++;
int envc = 0;
while (envp[envc] != NULL)
envc++;
// print("I have %d environment variables\n", envc);
// for (int i = 0; i < envc; i++)
// print("envp[%d] = (%p) %s\n", i, envp[i], envp[i]);
print("I have %d environment variables\n", envc);
for (int i = 0; i < envc; i++)
print("envp[%d] = (%p) %s\n", i, envp[i], envp[i]);
// Elf64_auxv_t *auxv;
// char **e = envp;
Elf64_auxv_t *auxv;
char **e = envp;
// while (*e++ != NULL)
// ;
while (*e++ != NULL)
;
// for (auxv = (Elf64_auxv_t *)e; auxv->a_type != AT_NULL; auxv++)
// print("auxv: %ld %#lx\n", auxv->a_type, auxv->a_un.a_val);
for (auxv = (Elf64_auxv_t *)e; auxv->a_type != AT_NULL; auxv++)
print("auxv: %ld %#lx\n", auxv->a_type, auxv->a_un.a_val);
File *test = FileOpen("/Test.txt", FILE_READ);
if (test == NULL)