diff --git a/src/sys/include/sys/_types.h b/src/sys/include/sys/_types.h new file mode 100644 index 0000000..c3827bf --- /dev/null +++ b/src/sys/include/sys/_types.h @@ -0,0 +1,65 @@ +/***************************************************************************************** + Copyright (c) 2002-2004 The UbixOS Project + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this list of + conditions, the following disclaimer and the list of authors. Redistributions in binary + form must reproduce the above copyright notice, this list of conditions, the following + disclaimer and the list of authors in the documentation and/or other materials provided + with the distribution. Neither the name of the UbixOS Project nor the names of its + contributors may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + $Id$ + +*****************************************************************************************/ + +#ifndef __TYPES_H +#define __TYPES_H + +#include + +typedef __signed char __int8_t; +typedef unsigned char __uint8_t; +typedef short __int16_t; +typedef unsigned short __uint16_t; +typedef int __int32_t; +typedef unsigned int __uint32_t; +typedef long long __int64_t; +typedef unsigned long long __uint64_t; + + +typedef unsigned long __clock_t; +typedef long __time_t; +typedef __uint32_t __ino_t; +typedef __int32_t __ssize_t; + +#endif + +/*** + $Log$ + Revision 1.4 2004/07/05 23:06:32 reddawg + Fixens + + Revision 1.3 2004/07/05 21:06:53 reddawg + Needed + + Revision 1.2 2004/05/21 15:12:17 reddawg + Cleaned up + + + END + ***/ diff --git a/src/sys/include/sys/tss.h b/src/sys/include/sys/tss.h new file mode 100644 index 0000000..6bcc794 --- /dev/null +++ b/src/sys/include/sys/tss.h @@ -0,0 +1,131 @@ +/***************************************************************************************** + Copyright (c) 2002-2004 The UbixOS Project + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this list of + conditions, the following disclaimer and the list of authors. Redistributions in binary + form must reproduce the above copyright notice, this list of conditions, the following + disclaimer and the list of authors in the documentation and/or other materials provided + with the distribution. Neither the name of the UbixOS Project nor the names of its + contributors may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + $Id$ + +*****************************************************************************************/ + +#ifndef _TSS_H +#define _TSS_H + +#include + +struct tssStruct { + short back_link; + short back_link_reserved; + long esp0; + short ss0; + short ss0_reserved; + long esp1; + short ss1; + short ss1_reserved; + long esp2; + short ss2; + short ss2_reserved; + long cr3; + long eip; + long eflags; + long eax,ecx,edx,ebx; + long esp; + long ebp; + long esi; + long edi; + short es; + short es_reserved; + short cs; + short cs_reserved; + short ss; + short ss_reserved; + short ds; + short ds_reserved; + short fs; + short fs_reserved; + short gs; + short gs_reserved; + short ldt; + short ldt_reserved; + short trace_bitmap; + short io_map; + char io_space[8192]; + }; + +struct i387Struct { + long cwd; + long swd; + long twd; + long fip; + long fcs; + long foo; + long fos; + long st_space[20]; /* 8*10 bytes for each FP-reg = 80 bytes */ + }; + +struct i386_frame { + uInt32 gs; + uInt32 fs; + uInt32 es; + uInt32 ds; + uInt32 ss; + uInt32 edi; + uInt32 esi; + uInt32 ebp; + uInt32 esp; + uInt32 ebx; + uInt32 edx; + uInt32 ecx; + uInt32 eax; + /* + uInt32 vector; + uInt32 error_code; + */ + uInt32 eip; + uInt32 cs; + uInt32 flags; + uInt32 user_esp; + uInt32 user_ss; + }; + +#endif + +/*** + $Log$ + Revision 1.6 2004/07/27 07:42:29 reddawg + *burp* + + Revision 1.5 2004/07/27 07:40:41 reddawg + does it compile now? + + Revision 1.4 2004/07/27 07:27:50 reddawg + chg: I was fooled thought we failed but it was a casting issue + + Revision 1.3 2004/07/22 20:53:07 reddawg + atkbd: fixed problem + + Revision 1.2 2004/05/21 15:12:17 reddawg + Cleaned up + + + END + ***/ diff --git a/src/sys/include/types.h b/src/sys/include/types.h new file mode 100644 index 0000000..04626f8 --- /dev/null +++ b/src/sys/include/types.h @@ -0,0 +1,115 @@ +/***************************************************************************************** + Copyright (c) 2002-2004 The UbixOS Project + All rights reserved. + + Redistribution and use in source and binary forms, with or without modification, are + permitted provided that the following conditions are met: + + Redistributions of source code must retain the above copyright notice, this list of + conditions, the following disclaimer and the list of authors. Redistributions in binary + form must reproduce the above copyright notice, this list of conditions, the following + disclaimer and the list of authors in the documentation and/or other materials provided + with the distribution. Neither the name of the UbixOS Project nor the names of its + contributors may be used to endorse or promote products derived from this software + without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL + THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR + TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + $Id$ + +*****************************************************************************************/ + +#ifndef _TYPES_H +#define _TYPES_H + +#include + +#ifndef NULL +#define NULL 0x0 +#endif + +typedef unsigned char uInt8; +typedef unsigned short uInt16; +typedef unsigned int uInt32; +typedef unsigned int uInt; +typedef char Int8; +typedef short Int16; +typedef long Int32; + +typedef __uint8_t u_int8_t; /* unsigned integrals (deprecated) */ +typedef __uint16_t u_int16_t; +typedef __uint32_t u_int32_t; +typedef __uint64_t u_int64_t; + +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned int u_int; +typedef unsigned long u_long; + + +typedef int pidType; + +typedef int pid_t; +typedef int size_t; /* standart */ + +#ifndef NOBOOL +#ifndef __cplusplus +typedef enum { FALSE=0,TRUE=1 } bool; +#endif +#endif + +#ifndef _INO_T_DECLARED +typedef __ino_t ino_t; /* inode number */ +#define _INO_T_DECLARED +#endif + +#ifndef _INT8_T_DECLARED +typedef __int8_t int8_t; +#define _INT8_T_DECLARED +#endif + +#ifndef _INT16_T_DECLARED +typedef __int16_t int16_t; +#define _INT16_T_DECLARED +#endif + +#ifndef _INT32_T_DECLARED +typedef __int32_t int32_t; +#define _INT32_T_DECLARED +#endif + +#ifndef _INT64_T_DECLARED +typedef __int64_t int64_t; +#define _INT64_T_DECLARED +#endif + +typedef __ssize_t ssize_t; + + +#endif + +/*** + $Log$ + Revision 1.6 2004/09/08 22:04:10 apwillia + Added calling of static constructors, commented out tty_printf in kprintf (due to deadlock) + + Revision 1.5 2004/07/05 23:06:32 reddawg + Fixens + + Revision 1.4 2004/06/01 02:50:45 reddawg + Cleanup + + Revision 1.3 2004/05/21 15:20:00 reddawg + Cleaned up + + + END + ***/ diff --git a/src/sys/init/main.c b/src/sys/init/main.c index 3d7b74c..3d17136 100644 --- a/src/sys/init/main.c +++ b/src/sys/init/main.c @@ -28,6 +28,7 @@ *****************************************************************************************/ #include +#include /***************************************************************************************** Desc: The Kernels Descriptor table: @@ -46,7 +47,6 @@ *****************************************************************************************/ ubixDescriptorTable(ubixGDT,9) { {dummy:0}, -#if 0 ubixStandardDescriptor(0x0, 0xFFFFF, (dCode + dRead + dBig + dBiglim)), ubixStandardDescriptor(0x0, 0xFFFFF, (dData + dWrite + dBig + dBiglim)), ubixStandardDescriptor(0x0, 0xFFFFF, (dLdt)), @@ -55,7 +55,6 @@ ubixStandardDescriptor(0x0, 0xFFFFF, (dData + dWrite + dBig + dBiglim + dDpl3)), ubixStandardDescriptor(0x4200, (sizeof(struct tssStruct)), (dTss)), ubixStandardDescriptor(0x6200, (sizeof(struct tssStruct)), (dTss)), -#endif }; struct { unsigned short limit __attribute__ ((packed)); @@ -63,7 +62,7 @@ } loadGDT = { (9 * sizeof(union descriptorTableUnion) - 1), ubixGDT }; int main() { - while (1); + while (1) asm("hlt"); } /***