aboutsummaryrefslogtreecommitdiff
path: root/ext2load/loader.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext2load/loader.c')
-rw-r--r--ext2load/loader.c42
1 files changed, 20 insertions, 22 deletions
diff --git a/ext2load/loader.c b/ext2load/loader.c
index 6eb1682..236c82f 100644
--- a/ext2load/loader.c
+++ b/ext2load/loader.c
@@ -9,11 +9,9 @@
#include <string.h>
#include <stdint.h>
-#include <arc.h>
#include <prom.h>
#include <elf.h>
-#include <sys/types.h>
#include <ext2_fs.h>
#include <ext2fs.h>
@@ -137,7 +135,7 @@ int LoadProgramSegments64(ext2_file_t file, Elf_Ehdr * header, void *segments)
arc_do_progress = 1;
status = ext2fs_file_read(file,
- (void *) (KSEG0ADDR((ULONG)
+ (void *) (KSEG0ADDR((unsigned long)
segment->p_vaddr)),
segment->p_filesz, NULL);
arc_do_progress = 0;
@@ -146,15 +144,15 @@ int LoadProgramSegments64(ext2_file_t file, Elf_Ehdr * header, void *segments)
prom_fatal("Cannot read program segment\n\r");
}
- size = (ULONG)segment->p_memsz - (ULONG)segment->p_filesz;
+ size = (unsigned long)segment->p_memsz - (unsigned long)segment->p_filesz;
if (size > 0) {
printf
("Zeroing memory at 0x%lx, size = 0x%lx\n\r",
- (KSEG0ADDR((ULONG)segment->p_vaddr +
- (ULONG)segment->p_filesz)), size);
+ (KSEG0ADDR((unsigned long)segment->p_vaddr +
+ (unsigned long)segment->p_filesz)), size);
memset((void *)
- (KSEG0ADDR((ULONG)segment->p_vaddr +
- (ULONG)segment->p_filesz)), 0, size);
+ (KSEG0ADDR((unsigned long)segment->p_vaddr +
+ (unsigned long)segment->p_filesz)), 0, size);
}
loaded = 1;
@@ -169,7 +167,7 @@ int LoadProgramSegments64(ext2_file_t file, Elf_Ehdr * header, void *segments)
void LoadProgramSegments(ext2_file_t file, Elf_Ehdr * header)
{
- Boolean loaded = False;
+ int loaded = 0;
void *segments;
size_t size;
errcode_t status;
@@ -278,7 +276,7 @@ Elf64_Addr LoadKernelFile(ext2_file_t file)
}
-Boolean OpenFile(const char *partition, const char *filename, ext2_file_t* file)
+int OpenFile(const char *partition, const char *filename, ext2_file_t* file)
{
extern io_manager arc_io_manager;
ext2_filsys fs;
@@ -290,22 +288,22 @@ Boolean OpenFile(const char *partition, const char *filename, ext2_file_t* file)
status = ext2fs_open(partition, 0, 0, 0, arc_io_manager, &fs);
if (status != 0) {
print_ext2fs_error(status);
- return False;
+ return 0;
}
status = ext2fs_namei_follow
(fs, EXT2_ROOT_INO, EXT2_ROOT_INO, filename, &file_inode);
if (status != 0) {
print_ext2fs_error(status);
- return False;
+ return 0;
}
status = ext2fs_file_open(fs, file_inode, 0, file);
if (status != 0) {
print_ext2fs_error(status);
- return False;
+ return 0;
}
- return True;
+ return 1;
}
Elf64_Addr LoadKernel(const char *partition, const char *filename)
@@ -321,7 +319,7 @@ Elf64_Addr LoadKernel(const char *partition, const char *filename)
void LoadInitrd(const char *partition, const char *filename)
{
ext2_file_t file;
- ULONG initrd_addr, initrd_sz;
+ unsigned long initrd_addr, initrd_sz;
int status;
if (!OpenFile(partition, filename, &file))
@@ -329,7 +327,7 @@ void LoadInitrd(const char *partition, const char *filename)
initrd_sz = ext2fs_file_get_size(file);
- initrd_addr = (ULONG)malloc(initrd_sz + max_page_size);
+ initrd_addr = (unsigned long)malloc(initrd_sz + max_page_size);
if (initrd_addr == 0) {
prom_fatal("Cannot allocate memory for initrd\n\r");
@@ -357,7 +355,7 @@ void LoadInitrd(const char *partition, const char *filename)
}
-void printCmdLine(int argc, CHAR *argv[])
+void printCmdLine(int argc, char *argv[])
{
int i;
@@ -365,7 +363,7 @@ void printCmdLine(int argc, CHAR *argv[])
printf("%u: %s\n\r", i, argv[i]);
}
-void _start64(LONG argc, CHAR * argv[], CHAR * envp[],
+void _start64(long argc, char *argv[], char *envp[],
unsigned long long *addr)
{
__asm__ __volatile__(
@@ -381,10 +379,10 @@ void _start64(LONG argc, CHAR * argv[], CHAR * envp[],
"\t.set pop": : "r" (addr), "r" (argc), "r" (argv) : "$4", "$5");
}
-void _start(LONG argc, CHAR *argv[], CHAR *envp[])
+void _start(int argc, char *argv[], char *envp[])
{
- CHAR **nargv;
- CHAR **params;
+ char **nargv;
+ char **params;
char *bootpartition, *label, *kernelfile=NULL, *initrdfile=NULL;
int nargc, nopt;
@@ -446,7 +444,7 @@ void _start(LONG argc, CHAR *argv[], CHAR *envp[])
if(is64==0) {
printf("Starting ELF32 kernel\n\r");
prom_flush_cache_all();
- ((void (*)(int argc, CHAR * argv[], CHAR * envp[]))
+ ((void (*)(int argc, char *argv[], char *envp[]))
kernel_entry32)(kargc ,kargv, envp);
} else {
printf("Starting ELF64 kernel\n\r");