kernel: simplify init code
This commit is contained in:
parent
aedc31e925
commit
4b7957a28f
|
@ -1,39 +1,7 @@
|
|||
extern void startboot(char*, char**);
|
||||
typedef union NativeTypes
|
||||
{
|
||||
char c;
|
||||
unsigned char uc;
|
||||
short s;
|
||||
unsigned short us;
|
||||
int i;
|
||||
unsigned int ui;
|
||||
long l;
|
||||
unsigned long ul;
|
||||
void* p;
|
||||
} NativeTypes;
|
||||
extern volatile NativeTypes* _sysargs;
|
||||
extern void startboot(int, char**);
|
||||
|
||||
void
|
||||
main(char* argv0)
|
||||
main(int argc, char**argv)
|
||||
{
|
||||
/* TODO: why do we need this on GCC?
|
||||
*/
|
||||
char **argv;
|
||||
argv = &argv0;
|
||||
|
||||
/* since crt0.s has not been included, we initialize _sysargs
|
||||
* manually, keeping it on the stack
|
||||
*/
|
||||
NativeTypes __sysargs[6] = {
|
||||
{ .l = -1 },
|
||||
{ .l = -1 },
|
||||
{ .l = -1 },
|
||||
{ .l = -1 },
|
||||
{ .l = -1 },
|
||||
{ .l = -1 }
|
||||
};
|
||||
_sysargs = __sysargs;
|
||||
|
||||
startboot(argv0, argv);
|
||||
_sysargs = (void*)0;
|
||||
startboot(argc, argv);
|
||||
}
|
||||
|
|
|
@ -88,7 +88,7 @@ initboot(void)
|
|||
}
|
||||
|
||||
void
|
||||
startboot(char *argv0, char **argv)
|
||||
startboot(int argc, char **argv)
|
||||
{
|
||||
/* Initialize per process structures on the stack */
|
||||
int i;
|
||||
|
@ -98,15 +98,6 @@ startboot(char *argv0, char **argv)
|
|||
nil
|
||||
};
|
||||
|
||||
void *privates[NPRIVATES];
|
||||
NativeTypes sysargs[6];
|
||||
|
||||
_nprivates = NPRIVATES;
|
||||
for(_nprivates = 0; _nprivates < NPRIVATES; ++_nprivates)
|
||||
privates[_nprivates] = nil;
|
||||
_privates = privates;
|
||||
_sysargs = &sysargs[0];
|
||||
|
||||
for(i = 0; i < sizeof buf; ++i)
|
||||
buf[i] = '\0';
|
||||
|
||||
|
|
Loading…
Reference in New Issue