Updated build system to remove `install` from `all`
[tpg/acess2.git] / Kernel / binary.c
index 7175799..e96da76 100644 (file)
@@ -2,27 +2,17 @@
  * Acess2\r
  * Common Binary Loader\r
  */\r
+#define DEBUG  0\r
 #include <common.h>\r
 #include <binary.h>\r
 \r
-#define DEBUG  1\r
-\r
-#if DEBUG\r
-#else\r
-# undef ENTER\r
-# undef LOG\r
-# undef LEAVE\r
-# define ENTER(...)\r
-# define LOG(...)\r
-# define LEAVE(...)\r
-#endif\r
-\r
 // === CONSTANTS ===\r
 #define BIN_LOWEST     MM_USER_MIN             // 1MiB\r
 #define BIN_GRANUALITY 0x10000         // 64KiB\r
+//! \todo Move 0xBC000000 to mm_virt.h\r
 #define BIN_HIGHEST    (0xBC000000-BIN_GRANUALITY)             // Just below the kernel\r
 #define        KLIB_LOWEST     MM_MODULE_MIN\r
-#define KLIB_GRANUALITY        0x8000          // 32KiB\r
+#define KLIB_GRANUALITY        0x10000         // 32KiB\r
 #define        KLIB_HIGHEST    (MM_MODULE_MAX-KLIB_GRANUALITY)\r
 \r
 // === TYPES ===\r
@@ -34,9 +24,10 @@ typedef struct sKernelBin {
 \r
 // === IMPORTS ===\r
 extern int     Proc_Clone(Uint *Err, Uint Flags);\r
-extern void    Proc_SetThreadName(char *Name);\r
+extern void    Threads_SetName(char *Name);\r
+extern char    *Threads_GetName(int ID);\r
+extern void    Threads_Exit(int, int);\r
 extern Uint    MM_ClearUser();\r
-extern void    Proc_Exit();\r
 extern void    Proc_StartUser(Uint Entrypoint, Uint *Bases, int ArgC, char **ArgV, char **EnvP, int DataSize);\r
 extern tKernelSymbol   gKernelSymbols[];\r
 extern void            gKernelSymbolsEnd;\r
@@ -146,7 +137,7 @@ int Proc_Execve(char *File, char **ArgV, char **EnvP)
        strcpy(savedFile, File);\r
        \r
        // --- Set Process Name\r
-       Proc_SetThreadName(File);\r
+       Threads_SetName(File);\r
        \r
        // --- Clear User Address space\r
        MM_ClearUser();\r
@@ -156,8 +147,8 @@ int Proc_Execve(char *File, char **ArgV, char **EnvP)
        free(savedFile);\r
        if(bases[0] == 0)\r
        {\r
-               Warning("Proc_Execve - Unable to load '%s'", File);\r
-               Proc_Exit();\r
+               Warning("Proc_Execve - Unable to load '%s'", Threads_GetName(-1));\r
+               Threads_Exit(0, 0);\r
                for(;;);\r
        }\r
        \r
@@ -332,6 +323,8 @@ Uint Binary_MapIn(tBinary *binary)
                        MM_SetFlags( addr, MM_PFLAG_COW, -1 );\r
        }\r
        \r
+       //Log("Mapped '%s' to 0x%x", binary->TruePath, base);\r
+       \r
        //LOG("*0x%x = 0x%x\n", binary->Pages[0].Virtual, *(Uint*)binary->Pages[0].Virtual);\r
        \r
        return base;\r
@@ -735,7 +728,7 @@ Uint Binary_Relocate(void *Base)
        }\r
        \r
        Warning("[BIN ] 0x%x is an unknown file type. (0x%x 0x%x 0x%x 0x%x)",\r
-               Base, ident&0xFF, ident>>8, ident>>16, ident>>24);\r
+               Base, ident&0xFF, (ident>>8)&0xFF, (ident>>16)&0xFF, (ident>>24)&0xFF);\r
        return 0;\r
 }\r
 \r

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