diff options
author | marcus <marcus> | 2003-09-26 13:46:53 +0000 |
---|---|---|
committer | marcus <marcus> | 2003-09-26 13:46:53 +0000 |
commit | ecce080e42a8825f4d3c8bac876f325f17664a71 (patch) | |
tree | d4eb27c7cf382d4a9e1b37d8399fe9ac0ebc5fbb /laden | |
parent | 9f6b84e8ae6b7e1358d6f0274aefb13b4b714696 (diff) |
2003-09-25 Johan Rydberg <jrydberg@night.trouble.net>
* laden.c (main): Call start_kernel to launch kernel instead
of calling the kernel start address.
* laden.h (start_kernel): Prototype.
* ia32-cmain.c (start_kernel): New function.
Diffstat (limited to 'laden')
-rw-r--r-- | laden/ChangeLog | 7 | ||||
-rw-r--r-- | laden/ia32-cmain.c | 7 | ||||
-rw-r--r-- | laden/laden.c | 2 | ||||
-rw-r--r-- | laden/laden.h | 3 |
4 files changed, 18 insertions, 1 deletions
diff --git a/laden/ChangeLog b/laden/ChangeLog index 1116599..8ca5334 100644 --- a/laden/ChangeLog +++ b/laden/ChangeLog @@ -1,3 +1,10 @@ +2003-09-25 Johan Rydberg <jrydberg@night.trouble.net> + + * laden.c (main): Call start_kernel to launch kernel instead + of calling the kernel start address. + * laden.h (start_kernel): Prototype. + * ia32-cmain.c (start_kernel): New function. + 2003-09-25 Marcus Brinkmann <marcus@gnu.org> * loader.c [HAVE_CONFIG_H]: Include <config.h>. diff --git a/laden/ia32-cmain.c b/laden/ia32-cmain.c index 317973c..591943c 100644 --- a/laden/ia32-cmain.c +++ b/laden/ia32-cmain.c @@ -36,6 +36,13 @@ help_arch (void) "through to the rootserver\n" "and handled by it.\n"; } + +/* Start kernel by simply jumping to the entry point. */ +void +start_kernel (l4_word_t ip) +{ + (*(void (*) (void)) ip) (); +} /* Check if the bit BIT in FLAGS is set. */ diff --git a/laden/laden.c b/laden/laden.c index e7ce290..972c2df 100644 --- a/laden/laden.c +++ b/laden/laden.c @@ -208,7 +208,7 @@ main (int argc, char *argv[]) /* FIXME. Flush D-cache? */ - (*(void (*) (void)) kernel.ip) (); + start_kernel (kernel.ip); /* Should not be reached. */ shutdown (); diff --git a/laden/laden.h b/laden/laden.h index 08fda5a..276e775 100644 --- a/laden/laden.h +++ b/laden/laden.h @@ -41,6 +41,9 @@ extern char *program_name; required for booting. */ void find_components (void); +/* Start kernel. IP is the entry point. */ +void start_kernel (l4_word_t ip); + typedef __l4_rootserver_t rootserver_t; /* For the rootserver components, find_components() must fill in the |