summaryrefslogtreecommitdiffstats
path: root/qemu/roms/openbios/arch/ppc/kernel.c
diff options
context:
space:
mode:
Diffstat (limited to 'qemu/roms/openbios/arch/ppc/kernel.c')
-rw-r--r--qemu/roms/openbios/arch/ppc/kernel.c99
1 files changed, 0 insertions, 99 deletions
diff --git a/qemu/roms/openbios/arch/ppc/kernel.c b/qemu/roms/openbios/arch/ppc/kernel.c
deleted file mode 100644
index 28f2965bb..000000000
--- a/qemu/roms/openbios/arch/ppc/kernel.c
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Creation Date: <2003/10/25 14:07:17 samuel>
- * Time-stamp: <2004/08/28 17:48:19 stepan>
- *
- * <kernel.c>
- *
- * Copyright (C) 2003, 2004 Samuel Rydh (samuel@ibrium.se)
- * Copyright (C) 2003, 2004 Stefan Reinauer
- *
- * Based upon unix.c (from OpenBIOS):
- *
- * Copyright (C) 2003 Patrick Mauritz, Stefan Reinauer
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * version 2
- *
- */
-
-#include "config.h"
-#include "dict.h"
-#include "libopenbios/bindings.h"
-#include "kernel/stack.h"
-#include "kernel/kernel.h"
-#include "libc/string.h"
-#include "kernel.h"
-
-#define MEMORY_SIZE (256*1024) /* 256K ram for hosted system */
-#define DICTIONARY_SIZE (512*1024) /* 512K for the dictionary */
-
-static ucell *memory;
-
-/************************************************************************/
-/* F U N C T I O N S */
-/************************************************************************/
-
-int
-forth_segv_handler( char *segv_addr )
-{
- ucell addr = 0xdeadbeef;
-
- if( PC >= (ucell) dict && PC <= (ucell) dict + dicthead )
- addr = *(ucell *) PC;
-
- printk("panic: segmentation violation at %x\n", (int)segv_addr);
- printk("dict=0x%x here=0x%x(dict+0x%x) pc=0x%x(dict+0x%x)\n",
- (int)dict, (int)(dict + dicthead), dicthead,
- PC, PC - (ucell) dict);
- printk("dstackcnt=%d rstackcnt=%d instruction=%x\n",
- dstackcnt, rstackcnt, addr);
-
-#ifdef DEBUG_DSTACK
- printdstack();
-#endif
-#ifdef DEBUG_RSTACK
- printrstack();
-#endif
- return -1;
-}
-
-/*
- * allocate memory and prepare engine for memory management.
- */
-
-static void
-init_memory( void )
-{
- memory = malloc(MEMORY_SIZE);
- if( !memory )
- panic("panic: not enough memory on host system.\n");
-
- /* we push start and end of memory to the stack
- * so that it can be used by the forth word QUIT
- * to initialize the memory allocator
- */
-
- PUSH( (ucell)memory );
- PUSH( (ucell)memory + MEMORY_SIZE );
-}
-
-int
-initialize_forth( void )
-{
- dict = malloc(DICTIONARY_SIZE);
- load_dictionary( forth_dictionary, sizeof(forth_dictionary) );
- forth_init();
-
- PUSH_xt( bind_noname_func(arch_of_init) );
- fword("PREPOST-initializer");
-
- PC = (ucell)findword("initialize-of");
- if( PC ) {
- init_memory();
- enterforth((xt_t)PC);
- free( memory );
- }
- free( dict );
- return 0;
-}