Cleaning up mostly
authorJohn Hodge <[email protected]>
Wed, 23 Mar 2011 05:33:04 +0000 (13:33 +0800)
committerJohn Hodge <[email protected]>
Wed, 23 Mar 2011 05:33:04 +0000 (13:33 +0800)
- Fixed makefiles to not assume that environment is correctly set (I.e. $(ARCH))
- Changed GCC to CC and NASM to AS in makefile trace output
- Cleaned up top-of-file externs
- Improved Heap_Dump output

Kernel/Makefile
Kernel/Makefile.BuildNum.x86_64
Kernel/arch/x86/Makefile
Kernel/arch/x86/main.c
Kernel/heap.c
Kernel/include/init.h
Kernel/include/threads.h
Kernel/include/tpl_drv_joystick.h
Kernel/syscalls.c

index af931a6..e4b0436 100644 (file)
@@ -70,14 +70,14 @@ $(BIN): $(OBJ) $(MODS) arch/$(ARCHDIR)/link.ld Makefile
        @$(STRIP) $(BIN)
 
 %.ao.$(ARCH): %.asm Makefile
-       @echo --- NASM -o $@
+       @echo --- AS -o $@
        @$(AS) $(ASFLAGS) $< -o $@
 
 %.o.$(ARCH): %.c Makefile
 #      if exists %*/Makefile
 #      @make -C %*/ all
 #      else
-       @echo --- GCC -o $@
+       @echo --- CC -o $@
        @$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ -c $<
        @$(MAKEDEP) $(CPPFLAGS) -MT $@ -o $*.d.$(ARCH) $<
 #      endif
index 0c44288..41a10bc 100644 (file)
@@ -13,21 +13,21 @@ CPPFLAGS    =
 CFLAGS         =
 ASFLAGS                = -f elf
 
+USE_MP=0
+USE_PAE=0
+
 ifeq ($(ARCH),i386)
-       ASFLAGS += -D USE_MP=0 -D USE_PAE=0
-       CPPFLAGS += -DUSE_MP=0 -DUSE_PAE=0
-else
-       ifeq ($(ARCH),i486)
-               ASFLAGS += -D USE_MP=1 -D USE_PAE=0
-               CPPFLAGS += -DUSE_MP=1 -DUSE_PAE=0
-       else
-               ifeq ($(ARCH),i586)
-                       ASFLAGS += -D USE_MP=1 -D USE_PAE=1
-                       CPPFLAGS += -DUSE_MP=1 -DUSE_PAE=1
-               endif
-       endif
+       USE_MP=0
+       USE_PAE=0
+else ifeq ($(ARCH),i486)
+       USE_MP=1
+else ifeq ($(ARCH),i586)
+       USE_MP=1
+       USE_PAE=1
 endif
-       
+
+ASFLAGS += -D USE_MP=$(USE_MP) -D USE_PAE=$(USE_PAE)
+CPPFLAGS += -DUSE_MP=$(USE_MP) -DUSE_PAE=$(USE_PAE)
 
 A_OBJ  = start.ao main.o lib.o desctab.ao errors.o irq.o
 A_OBJ += mm_phys.o mm_virt.o
index a55979f..b0fe6e0 100644 (file)
@@ -28,7 +28,6 @@ extern void   System_Init(char *Commandline);
 
 // === PROTOTYPES ===
  int   kmain(Uint MbMagic, void *MbInfoPtr);
-void   Arch_LoadBootModules(void);
 
 // === GLOBALS ===
 char   *gsBootCmdLine = NULL;
index a569578..c440b18 100644 (file)
@@ -62,6 +62,11 @@ void *Heap_Extend(int Bytes)
        if( (tVAddr)gHeapEnd == MM_KHEAP_MAX )
                return NULL;
        
+       if( Bytes == 0 ) {
+               Log_Warning("Heap", "Heap_Extend called with Bytes=%i", Bytes);
+               return NULL;
+       }
+       
        // Bounds Check
        if( (tVAddr)gHeapEnd + ((Bytes+0xFFF)&~0xFFF) > MM_KHEAP_MAX ) {
                Bytes = MM_KHEAP_MAX - (tVAddr)gHeapEnd;
@@ -314,7 +319,7 @@ void Heap_Deallocate(void *Ptr)
        }
        if(head->Magic != MAGIC_USED) {
                Log_Warning("Heap", "free - Magic value is invalid (%p, 0x%x)", head, head->Magic);
-               Log_Notice("Heap", "Allocated %s:%i", head->File, head->Line);
+               Log_Notice("Heap", "Allocated by %s:%i", head->File, head->Line);
                return;
        }
        
@@ -322,12 +327,12 @@ void Heap_Deallocate(void *Ptr)
        foot = (void*)( (Uint)head + head->Size - sizeof(tHeapFoot) );
        if(foot->Head != head) {
                Log_Warning("Heap", "free - Footer backlink is incorrect (%p, 0x%x)", head, foot->Head);
-               Log_Notice("Heap", "Allocated %s:%i", head->File, head->Line);
+               Log_Notice("Heap", "Allocated by %s:%i", head->File, head->Line);
                return;
        }
        if(foot->Magic != MAGIC_FOOT) {
                Log_Warning("Heap", "free - Footer magic is invalid (%p, %p = 0x%x)", head, &foot->Magic, foot->Magic);
-               Log_Notice("Heap", "Allocated %s:%i", head->File, head->Line);
+               Log_Notice("Heap", "Allocated by %s:%i", head->File, head->Line);
                return;
        }
        
@@ -561,7 +566,7 @@ void Heap_Dump(void)
                return ;
 
        #if !VERBOSE_DUMP
-       Log_Log("Heap", "%p (0x%llx): 0x%08lx (%i) %4C",
+       Log_Log("Heap", "%p (0x%llx): 0x%08lx %i %4C",
                head, MM_GetPhysAddr((Uint)head), head->Size, head->ValidSize, &head->Magic);
        Log_Log("Heap", "%p %4C", foot->Head, &foot->Magic);
        if(head->File) {
index a16acfd..9f2fc10 100644 (file)
@@ -5,13 +5,7 @@
 #ifndef _INIT_H
 #define _INIT_H
 
-#define INIT_SRV_MAGIC (0xE6|('S'<<8)|('R'<<16)|('V'<<24))
-
-typedef struct sInitServ {
-       Uint32  Magic;
-       Uint32  LoadBase;
-       Uint32  MemSize;
-        int    (*Entrypoint)(char **Args);
-} tInitServ;
+extern void    Arch_LoadBootModules(void);
+extern void    StartupPrint(const char *String);
 
 #endif
index f53bbad..68fb955 100644 (file)
@@ -111,6 +111,7 @@ extern BOOL gaThreads_NoTaskSwitch[MAX_CPUS];
 
 // === FUNCTIONS ===
 extern tThread *Proc_GetCurThread(void);
+
 extern tThread *Threads_GetThread(Uint TID);
 extern void    Threads_SetPriority(tThread *Thread, int Pri);
 extern int     Threads_Wake(tThread *Thread);
index 16c04ce..dd22001 100644 (file)
@@ -28,7 +28,7 @@
  */\r
 enum eTplJoystick_IOCtl {\r
        /**\r
-        * ioctl(..., struct{int Ident;tKeybardCallback *Callback})\r
+        * ioctl(..., struct{int Ident;tJoystickCallback *Callback})\r
         * \brief Sets the callback\r
         * \note Can be called from kernel mode only\r
         *\r
index 6c62a92..b032983 100644 (file)
@@ -8,6 +8,7 @@
 #include <syscalls.h>
 #include <proc.h>
 #include <errno.h>
+#include <threads.h>
 
 #define CHECK_NUM_NULLOK(v,size)       \
        if((v)&&!Syscall_Valid((size),(Uint)(v))){ret=-1;err=-EINVAL;break;}

UCC git Repository :: git.ucc.asn.au