From 78a6c60acd97e5cb98a1ba6dc8ad649dabe98b24 Mon Sep 17 00:00:00 2001 From: Emanuele Aliberti Date: Mon, 1 May 2000 14:15:03 +0000 Subject: [PATCH] Some STDCALL/FASTCALL added in Ex code. NTOSKRNL's makefile revised with redundant passes removed. svn path=/trunk/; revision=1142 --- reactos/Makefile | 2 +- reactos/apps/utils/shell/shell.c | 32 +- reactos/include/ddk/exfuncs.h | 10 + reactos/include/ddk/obtypes.h | 32 ++ reactos/include/ddk/zwtypes.h | 27 +- reactos/lib/crtdll/crtdll.def | 7 +- reactos/ntoskrnl/ex/fmutex.c | 22 +- reactos/ntoskrnl/hal/x86/sources | 35 +- reactos/ntoskrnl/makefile_rex | 588 +++++++++++++++++++++---------- reactos/ntoskrnl/ntoskrnl.def | 14 +- reactos/ntoskrnl/ntoskrnl.edf | 14 +- reactos/rules.mak | 2 +- 12 files changed, 530 insertions(+), 255 deletions(-) diff --git a/reactos/Makefile b/reactos/Makefile index a351bdad534..d3c34009f65 100644 --- a/reactos/Makefile +++ b/reactos/Makefile @@ -41,7 +41,7 @@ FS_DRIVERS = vfat minix KERNEL_SERVICES = $(DEVICE_DRIVERS) $(FS_DRIVERS) APPS = args hello shell test cat bench apc shm lpc thread event file gditest \ - pteb + pteb objdir all: buildno $(COMPONENTS) $(DLLS) $(SUBSYS) $(LOADERS) $(KERNEL_SERVICES) $(APPS) diff --git a/reactos/apps/utils/shell/shell.c b/reactos/apps/utils/shell/shell.c index 3dc7507ed77..b04d6c0d11b 100644 --- a/reactos/apps/utils/shell/shell.c +++ b/reactos/apps/utils/shell/shell.c @@ -1,4 +1,4 @@ -/* $Id: shell.c,v 1.37 2000/04/23 17:49:07 phreak Exp $ +/* $Id: shell.c,v 1.38 2000/05/01 14:15:01 ea Exp $ * * PROJECT : ReactOS Operating System * DESCRIPTION: ReactOS' Native Shell @@ -251,22 +251,20 @@ ExecuteKill(char * lpPid) void ExecuteHelp (void * dummy) { - debug_printf ( - "A:\t\t\tCurrent drive is A:\n" - "C:\t\t\tCurrent drive is C:\n" - "cd [directory]\t\tChange current directory\n" - "dir [directory]\t\tList directory\n" - "exit\t\t\tTerminate the shell\n" - "help\t\t\tPrint this help message\n" - "kill [pid]\t\tKill process which PID is pid\n" - "md [directory]\t\tCreate a new directory\n" - "reboot\t\t\tRestart the system\n" - "start [program.exe]\tDetach program.exe\n" - "type [file]\t\tPrint the file on console\n" - "validate\t\tValidate the process' heap\n" - "ver\t\t\tPrint version information\n" - "[program.exe]\t\tStart synchronously program.exe\n\n" - ); + debug_printf ("A:\t\t\tCurrent drive is A:\n"); + debug_printf ("C:\t\t\tCurrent drive is C:\n"); + debug_printf ("cd [directory]\t\tChange current directory\n"); + debug_printf ("dir [directory]\t\tList directory\n"); + debug_printf ("exit\t\t\tTerminate the shell\n"); + debug_printf ("help\t\t\tPrint this help message\n"); + debug_printf ("kill [pid]\t\tKill process which PID is pid\n"); + debug_printf ("md [directory]\t\tCreate a new directory\n"); + debug_printf ("reboot\t\t\tRestart the system\n"); + debug_printf ("start [program.exe]\tDetach program.exe\n"); + debug_printf ("type [file]\t\tPrint the file on console\n"); + debug_printf ("validate\t\tValidate the process' heap\n"); + debug_printf ("ver\t\t\tPrint version information\n"); + debug_printf ("[program.exe]\t\tStart synchronously program.exe\n\n"); } void ExecuteCommand(char* line) diff --git a/reactos/include/ddk/exfuncs.h b/reactos/include/ddk/exfuncs.h index fa395a4a01c..b3dad2ee1d5 100644 --- a/reactos/include/ddk/exfuncs.h +++ b/reactos/include/ddk/exfuncs.h @@ -8,10 +8,12 @@ ExReleaseResourceLite ( PERESOURCE Resource ); VOID +FASTCALL ExAcquireFastMutex ( PFAST_MUTEX FastMutex ); VOID +FASTCALL ExAcquireFastMutexUnsafe ( PFAST_MUTEX FastMutex ); @@ -151,10 +153,13 @@ ULONG ExGetSharedWaiterCount ( PERESOURCE Resource ); +/* ReactOS Specific: begin */ VOID +FASTCALL ExInitializeFastMutex ( PFAST_MUTEX FastMutex ); +/* ReactOS Specific: end */ VOID ExInitializeNPagedLookasideList ( PNPAGED_LOOKASIDE_LIST Lookaside, @@ -265,11 +270,15 @@ VOID ExReinitializeResourceLite ( PERESOURCE Resource ); +/* ReactOS Specific: begin */ VOID +FASTCALL ExReleaseFastMutex ( PFAST_MUTEX Mutex ); +/* ReactOS Specific: end */ VOID +FASTCALL ExReleaseFastMutexUnsafe ( PFAST_MUTEX Mutex ); @@ -293,6 +302,7 @@ ExSystemTimeToLocalTime ( PLARGE_INTEGER LocalTime ); BOOLEAN +FASTCALL ExTryToAcquireFastMutex ( PFAST_MUTEX FastMutex ); diff --git a/reactos/include/ddk/obtypes.h b/reactos/include/ddk/obtypes.h index 6f157253c6a..0f183660809 100644 --- a/reactos/include/ddk/obtypes.h +++ b/reactos/include/ddk/obtypes.h @@ -1,3 +1,6 @@ +#ifndef _INCLUDE_DDK_OBTYPES_H +#define _INCLUDE_DDK_OBTYPES_H +/* $Id: obtypes.h,v 1.7 2000/05/01 14:15:01 ea Exp $ */ struct _DIRECTORY_OBJECT; struct _OBJECT_ATTRIBUTES; @@ -146,3 +149,32 @@ typedef struct _HANDLE_TABLE } HANDLE_TABLE, *PHANDLE_TABLE; extern POBJECT_TYPE ObDirectoryType; + +#if 0 +#define OBJECT_TYPE_0 0 +#define OBJECT_TYPE_1 1 +#define OBJECT_TYPE_DIRECTORY 2 +#define OBJECT_TYPE_SYMBOLICLINK 3 +#define OBJECT_TYPE_TOKEN 4 +#define OBJECT_TYPE_PROCESS 5 +#define OBJECT_TYPE_THREAD 6 +#define OBJECT_TYPE_EVENT 7 +#define OBJECT_TYPE_8 8 +#define OBJECT_TYPE_MUTANT 9 +#define OBJECT_TYPE_SEMAPHORE 10 +#define OBJECT_TYPE_TIMER 11 +#define OBJECT_TYPE_12 12 +#define OBJECT_TYPE_WINDOWSTATION 13 +#define OBJECT_TYPE_DESKTOP 14 +#define OBJECT_TYPE_SECTION 15 +#define OBJECT_TYPE_KEY 16 +#define OBJECT_TYPE_PORT 17 +#define OBJECT_TYPE_18 18 +#define OBJECT_TYPE_19 19 +#define OBJECT_TYPE_20 20 +#define OBJECT_TYPE_21 21 +#define OBJECT_TYPE_IOCOMPLETION 22 +#define OBJECT_TYPE_FILE 23 +#endif + +#endif /* ndef _INCLUDE_DDK_OBTYPES_H */ diff --git a/reactos/include/ddk/zwtypes.h b/reactos/include/ddk/zwtypes.h index 34b4ccaead1..c4a46d3e492 100644 --- a/reactos/include/ddk/zwtypes.h +++ b/reactos/include/ddk/zwtypes.h @@ -428,32 +428,7 @@ struct _SYSTEM_RESOURCE_LOCK_INFO // UNKNOWN // SystemHandleInformation (16) -#if 0 -#define OBJECT_TYPE_0 0 -#define OBJECT_TYPE_1 1 -#define OBJECT_TYPE_OBJDIRECTORY 2 -#define OBJECT_TYPE_SYMLINK 3 -#define OBJECT_TYPE_TOKEN 4 -#define OBJECT_TYPE_PROCESS 5 -#define OBJECT_TYPE_THREAD 6 -#define OBJECT_TYPE_EVENT 7 -#define OBJECT_TYPE_8 8 -#define OBJECT_TYPE_MUTANT 9 -#define OBJECT_TYPE_SEMAPHORE 10 -#define OBJECT_TYPE_TIMER 11 -#define OBJECT_TYPE_12 12 -#define OBJECT_TYPE_WINSTATION 13 -#define OBJECT_TYPE_DESKTOP 14 -#define OBJECT_TYPE_SECTION 15 -#define OBJECT_TYPE_KEY 16 -#define OBJECT_TYPE_PORT 17 -#define OBJECT_TYPE_18 18 -#define OBJECT_TYPE_19 19 -#define OBJECT_TYPE_20 20 -#define OBJECT_TYPE_21 21 -#define OBJECT_TYPE_IOCOMPLETION 22 -#define OBJECT_TYPE_FILE 23 -#endif +// (see ontypes.h) typedef struct _SYSTEM_HANDLE_ENTRY { diff --git a/reactos/lib/crtdll/crtdll.def b/reactos/lib/crtdll/crtdll.def index fd3795eee1f..5135ba694bc 100644 --- a/reactos/lib/crtdll/crtdll.def +++ b/reactos/lib/crtdll/crtdll.def @@ -17,9 +17,9 @@ ; DISCLAMED. This includes but is not limited to warrenties of ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ; -; $Revision: 1.12 $ -; $Author: ariadne $ -; $Date: 1999/05/24 15:22:43 $ +; $Revision: 1.13 $ +; $Author: ea $ +; $Date: 2000/05/01 14:15:01 $ ; ; These three functions appear to be name mangled in some way, so GCC is ; probably not going to be able to use them in any case. @@ -35,6 +35,7 @@ ; _set_new_handler__FPFUi_i ; ; +LIBRARY CRTDLL.DLL EXPORTS __builtin_new __builtin_delete diff --git a/reactos/ntoskrnl/ex/fmutex.c b/reactos/ntoskrnl/ex/fmutex.c index 7c915f4b5b7..05780fd320f 100644 --- a/reactos/ntoskrnl/ex/fmutex.c +++ b/reactos/ntoskrnl/ex/fmutex.c @@ -1,4 +1,5 @@ -/* +/* $Id: fmutex.c,v 1.5 2000/05/01 14:15:02 ea Exp $ + * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel * FILE: ntoskrnl/ex/fmutex.c @@ -16,13 +17,14 @@ /* FUNCTIONS *****************************************************************/ -VOID ExAcquireFastMutex(PFAST_MUTEX FastMutex) +/* FIXME: in HAL */ +VOID FASTCALL EXPORTED ExAcquireFastMutex(PFAST_MUTEX FastMutex) { KeEnterCriticalRegion(); ExAcquireFastMutexUnsafe(FastMutex); } -VOID ExAcquireFastMutexUnsafe(PFAST_MUTEX FastMutex) +VOID FASTCALL EXPORTED ExAcquireFastMutexUnsafe(PFAST_MUTEX FastMutex) { if (InterlockedDecrement(&(FastMutex->Count))==0) { @@ -37,7 +39,8 @@ VOID ExAcquireFastMutexUnsafe(PFAST_MUTEX FastMutex) FastMutex->Owner=KeGetCurrentThread(); } -VOID ExInitializeFastMutex(PFAST_MUTEX FastMutex) +/* FIXME: convert it into a macro */ +VOID FASTCALL ExInitializeFastMutex(PFAST_MUTEX FastMutex) { FastMutex->Count=1; FastMutex->Owner=NULL; @@ -47,7 +50,7 @@ VOID ExInitializeFastMutex(PFAST_MUTEX FastMutex) FALSE); } -VOID ExReleaseFastMutexUnsafe(PFAST_MUTEX FastMutex) +VOID FASTCALL EXPORTED ExReleaseFastMutexUnsafe(PFAST_MUTEX FastMutex) { assert(FastMutex->Owner == KeGetCurrentThread()); FastMutex->Owner=NULL; @@ -58,16 +61,19 @@ VOID ExReleaseFastMutexUnsafe(PFAST_MUTEX FastMutex) KeSetEvent(&(FastMutex->Event),0,FALSE); } -VOID ExReleaseFastMutex(PFAST_MUTEX FastMutex) +/* FIXME: in HAL */ +VOID FASTCALL EXPORTED ExReleaseFastMutex(PFAST_MUTEX FastMutex) { ExReleaseFastMutexUnsafe(FastMutex); KeLeaveCriticalRegion(); } -BOOLEAN ExTryToAcquireFastMutex(PFAST_MUTEX FastMutex) + +/* FIXME: in HAL */ +BOOLEAN FASTCALL EXPORTED ExTryToAcquireFastMutex(PFAST_MUTEX FastMutex) { UNIMPLEMENTED; } - +/* EOF */ diff --git a/reactos/ntoskrnl/hal/x86/sources b/reactos/ntoskrnl/hal/x86/sources index 998d4abf643..4a7650b08b3 100644 --- a/reactos/ntoskrnl/hal/x86/sources +++ b/reactos/ntoskrnl/hal/x86/sources @@ -1,9 +1,26 @@ -HAL_OBJECTS = hal/x86/irq.o hal/x86/isa.o \ - hal/x86/pci.o hal/x86/irqhand.o hal/x86/halinit.o \ - hal/x86/irql.o hal/x86/bios32.o \ - hal/x86/mp.o hal/x86/dma.o hal/x86/bus.o hal/x86/mbr.o \ - hal/x86/sysinfo.o hal/x86/time.o hal/x86/beep.o \ - hal/x86/display.o hal/x86/reboot.o hal/x86/kdbg.o \ - hal/x86/portio.o hal/x86/misc.o hal/x86/parttab.o \ - hal/x86/adapter.o hal/x86/drive.o hal/x86/udelay.o \ - hal/x86/sysbus.o +OBJECTS_HAL = \ + hal/x86/adapter.o \ + hal/x86/beep.o \ + hal/x86/bios32.o \ + hal/x86/bus.o \ + hal/x86/display.o \ + hal/x86/dma.o \ + hal/x86/drive.o \ + hal/x86/halinit.o \ + hal/x86/irq.o \ + hal/x86/irqhand.o \ + hal/x86/isa.o \ + hal/x86/irql.o \ + hal/x86/kdbg.o \ + hal/x86/mbr.o \ + hal/x86/misc.o \ + hal/x86/mp.o \ + hal/x86/parttab.o \ + hal/x86/pci.o \ + hal/x86/portio.o \ + hal/x86/reboot.o \ + hal/x86/sysbus.o \ + hal/x86/sysinfo.o \ + hal/x86/time.o \ + hal/x86/udelay.o + diff --git a/reactos/ntoskrnl/makefile_rex b/reactos/ntoskrnl/makefile_rex index b60cb980163..68c4040f99f 100644 --- a/reactos/ntoskrnl/makefile_rex +++ b/reactos/ntoskrnl/makefile_rex @@ -1,185 +1,420 @@ -# $Id: makefile_rex,v 1.68 2000/04/08 19:08:05 ekohl Exp $ +# $Id: makefile_rex,v 1.69 2000/05/01 14:15:02 ea Exp $ # # ReactOS Operating System # -TARGET=ntoskrnl +TARGETNAME = ntoskrnl +OBJECTS_PATH = objects BASE_CFLAGS = -I../include -D__NTOSKRNL__ -all: objects $(TARGET).exe $(TARGET).nostrip.exe +all: \ + $(OBJECTS_PATH) \ + $(TARGETNAME).nostrip.exe \ + $(TARGETNAME).exe -# -# Defines $(HAL_OBJECTS) +# Hardware Abstraction Layer (Hal) +# Defines $(OBJECTS_HAL) # include hal/x86/sources -NT_OBJECTS = nt/port.o nt/channel.o nt/ntevent.o nt/nttimer.o nt/atom.o \ - nt/evtpair.o nt/ntsem.o nt/mutant.o nt/misc.o nt/plugplay.o \ - nt/profile.o nt/nt.o nt/zw.o - -RTL_OBJECTS = rtl/ctype.o rtl/interlck.o rtl/largeint.o rtl/list.o \ - rtl/lookas.o rtl/mem.o rtl/memchr.o rtl/memcpy.o \ - rtl/memmove.o rtl/memset.o rtl/nls.o rtl/regio.o \ - rtl/return.o rtl/slist.o rtl/sprintf.o rtl/swprintf.o \ - rtl/stdlib.o rtl/string.o rtl/time.o rtl/unalign.o \ - rtl/unicode.o rtl/wstring.o rtl/bitmap.o rtl/qsort.o - -KE_OBJECTS = ke/head.o ke/main.o ke/timer.o ke/error.o ke/catch.o \ - ke/dpc.o ke/wait.o ke/kqueue.o ke/dispatch.o \ - ke/sem.o ke/critical.o ke/event.o ke/apc.o ke/bug.o \ - ke/mutex.o ke/kernel.o ke/ldt.o ke/spinlock.o\ - ke/process.o ke/gdt.o ke/idt.o - -KE_I386_OBJECTS = ke/i386/thread.o ke/i386/usercall.o ke/i386/exp.o +# System API (Nt/Zw) +OBJECTS_NT = \ + nt/atom.o \ + nt/channel.o \ + nt/evtpair.o \ + nt/mutant.o \ + nt/misc.o \ + nt/nt.o \ + nt/ntevent.o \ + nt/ntsem.o \ + nt/nttimer.o \ + nt/plugplay.o \ + nt/port.o \ + nt/profile.o \ + nt/zw.o + +# Run-Time Library (Rtl) +OBJECTS_RTL = \ + rtl/bitmap.o \ + rtl/ctype.o \ + rtl/interlck.o \ + rtl/largeint.o \ + rtl/list.o \ + rtl/lookas.o \ + rtl/mem.o \ + rtl/memchr.o \ + rtl/memcpy.o \ + rtl/memmove.o \ + rtl/memset.o \ + rtl/nls.o \ + rtl/qsort.o \ + rtl/regio.o \ + rtl/return.o \ + rtl/slist.o \ + rtl/sprintf.o \ + rtl/stdlib.o \ + rtl/string.o \ + rtl/swprintf.o \ + rtl/time.o \ + rtl/unalign.o \ + rtl/unicode.o \ + rtl/wstring.o + +# Kernel (Ke) +OBJECTS_KE = \ + ke/apc.o \ + ke/bug.o \ + ke/catch.o \ + ke/critical.o \ + ke/dispatch.o \ + ke/dpc.o \ + ke/error.o \ + ke/event.o \ + ke/gdt.o \ + ke/head.o \ + ke/idt.o \ + ke/kernel.o \ + ke/kqueue.o \ + ke/ldt.o \ + ke/main.o \ + ke/mutex.o \ + ke/process.o \ + ke/sem.o \ + ke/spinlock.o \ + ke/timer.o \ + ke/wait.o + +OBJECTS_KE_I386 = \ + ke/i386/exp.o \ + ke/i386/thread.o \ + ke/i386/usercall.o -MM_OBJECTS = mm/mm.o mm/freelist.o mm/pool.o mm/virtual.o \ - mm/mdl.o mm/zone.o mm/paging.o mm/section.o \ - mm/marea.o mm/ppool.o mm/npool.o mm/pagefile.o \ - mm/cont.o mm/iospace.o mm/ncache.o mm/aspace.o \ - mm/pagfault.o - - -MM_I386_OBJECTS = mm/i386/page.o mm/i386/memsafe.o mm/i386/pfault.o - -IO_OBJECTS = io/iomgr.o io/create.o io/irp.o io/device.o io/rw.o \ - io/queue.o io/drvlck.o io/timer.o io/share.o io/errlog.o \ - io/shutdown.o io/cancel.o io/error.o io/arc.o \ - io/dpc.o io/symlink.o io/adapter.o io/cntrller.o io/mdl.o \ - io/resource.o io/event.o io/process.o io/file.o io/ioctrl.o \ - io/fs.o io/vpb.o io/buildirp.o io/flush.o io/dir.o io/iocomp.o \ - io/mailslot.o io/npipe.o io/lock.o io/page.o io/cleanup.o - -OB_OBJECTS = ob/object.o ob/handle.o ob/namespc.o ob/ntobj.o ob/dirobj.o \ - ob/security.o - -PS_OBJECTS = ps/psmgr.o ps/thread.o ps/process.o ps/idle.o ps/kill.o \ - ps/tinfo.o ps/create.o - -EX_OBJECTS = ex/work.o ex/fmutex.o ex/resource.o ex/time.o ex/interlck.o \ - ex/callback.o ex/napi.o ex/power.o ex/sysinfo.o ex/locale.o \ - ex/stamp.o ex/init.o - -FS_OBJECTS = fs/dbcsname.o fs/name.o fs/mcb.o fs/unc.o fs/util.o \ - fs/filelock.o fs/pool.o fs/mdl.o fs/oplock.o fs/tunnel.o \ - fs/notify.o - -SE_OBJECTS = se/semgr.o se/acl.o se/sid.o se/sd.o se/token.o se/luid.o \ - se/priv.o se/access.o - -CM_OBJECTS = cm/registry.o +# Memory Manager (Mm) +OBJECTS_MM = \ + mm/aspace.o \ + mm/cont.o \ + mm/freelist.o \ + mm/iospace.o \ + mm/marea.o \ + mm/mdl.o \ + mm/mm.o \ + mm/ncache.o \ + mm/npool.o \ + mm/pagfault.o \ + mm/pagefile.o \ + mm/paging.o \ + mm/pool.o \ + mm/ppool.o \ + mm/section.o \ + mm/virtual.o \ + mm/zone.o + +OBJECTS_MM_I386 = \ + mm/i386/memsafe.o \ + mm/i386/page.o \ + mm/i386/pfault.o + +# I/O Subsystem (Io) +OBJECTS_IO = \ + io/adapter.o \ + io/arc.o \ + io/buildirp.o \ + io/cancel.o \ + io/cleanup.o \ + io/cntrller.o \ + io/create.o \ + io/device.o \ + io/dir.o \ + io/dpc.o \ + io/drvlck.o \ + io/errlog.o \ + io/error.o \ + io/event.o \ + io/file.o \ + io/flush.o \ + io/fs.o \ + io/iocomp.o \ + io/ioctrl.o \ + io/iomgr.o \ + io/irp.o \ + io/lock.o \ + io/mailslot.o \ + io/mdl.o \ + io/npipe.o \ + io/page.o \ + io/process.o \ + io/queue.o \ + io/resource.o \ + io/rw.o \ + io/share.o \ + io/shutdown.o \ + io/symlink.o \ + io/timer.o \ + io/vpb.o + +# Object Manager (Ob) +OBJECTS_OB = \ + ob/dirobj.o \ + ob/handle.o \ + ob/namespc.o \ + ob/ntobj.o \ + ob/object.o \ + ob/security.o + +# Process Manager (Ps) +OBJECTS_PS = \ + ps/create.o \ + ps/idle.o \ + ps/kill.o \ + ps/process.o \ + ps/psmgr.o \ + ps/thread.o \ + ps/tinfo.o + +# Executive Subsystem (Ex) +OBJECTS_EX = \ + ex/callback.o \ + ex/fmutex.o \ + ex/init.o \ + ex/interlck.o \ + ex/locale.o \ + ex/napi.o \ + ex/power.o \ + ex/resource.o \ + ex/time.o \ + ex/stamp.o \ + ex/sysinfo.o \ + ex/work.o + +# Installable File System Run-Time Library (FsRtl) +OBJECTS_FS = \ + fs/dbcsname.o \ + fs/filelock.o \ + fs/mcb.o \ + fs/mdl.o \ + fs/name.o \ + fs/notify.o \ + fs/oplock.o \ + fs/pool.o \ + fs/tunnel.o \ + fs/unc.o \ + fs/util.o + +# Security Subsystem +OBJECTS_SE = \ + se/access.o \ + se/acl.o \ + se/luid.o \ + se/priv.o \ + se/sd.o \ + se/semgr.o \ + se/sid.o \ + se/token.o + +# Configuration Manager (Registry) +OBJECTS_CM = \ + cm/registry.o + +# Debugger Support (Dbg) +OBJECTS_DBG = \ + dbg/brkpoint.o \ + dbg/errinfo.o \ + dbg/print.o + +# Loader +OBJECTS_LDR = \ + ldr/init.o \ + ldr/loader.o \ + ldr/rtl.o \ + ldr/syspath.o \ + ldr/sysdll.o \ + ldr/userldr.o + +# Nation Language Support Library (Nls) +OBJECTS_NLS = nls/nls.o + +# Power Management (Po) +OBJECTS_PO = po/power.o + +# Cache Manager (Cc) +OBJECTS_CC = \ + cc/cacheman.o \ + cc/view.o + +# Kernel Debugger Support (Kd) +OBJECTS_KD = \ + kd/kdebug.o \ + kd/service.o + +# Resources +OBJECTS_RESOURCE = \ + $(TARGETNAME).coff + +# IMPORTS/EXPORTS +IE_DATA = \ + $(TARGETNAME).def \ + $(TARGETNAME).edf + +$(OBJECTS_PATH): + mkdir $(OBJECTS_PATH) -DBG_OBJECTS = dbg/brkpoint.o dbg/errinfo.o dbg/print.o - -LDR_OBJECTS = ldr/loader.o ldr/init.o ldr/syspath.o ldr/sysdll.o ldr/rtl.o \ - ldr/userldr.o - -NLS_OBJECTS = nls/nls.o - -PO_OBJECTS = po/power.o - -CC_OBJECTS = cc/cacheman.o cc/view.o - -KD_OBJECTS = kd/kdebug.o kd/service.o - -RESOURCE_OBJECT = $(TARGET).coff - -objects: - mkdir objects - -objects/hal.o: $(HAL_OBJECTS) - $(LD) -r $(HAL_OBJECTS) -o objects/hal.o - -objects/io.o: $(IO_OBJECTS) - $(LD) -r $(IO_OBJECTS) -o objects/io.o - -objects/ke.o: $(KE_OBJECTS) $(KE_I386_OBJECTS) - $(LD) -r $(KE_OBJECTS) $(KE_I386_OBJECTS) -o objects/ke.o - -objects/rtl.o: $(RTL_OBJECTS) - $(LD) -r $(RTL_OBJECTS) -o objects/rtl.o +# +# Build subsystem intermediate objects +# +$(OBJECTS_PATH)/hal.o: $(OBJECTS_HAL) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/hal.o \ + $(OBJECTS_HAL) -objects/mm.o: $(MM_OBJECTS) $(MM_I386_OBJECTS) - $(LD) -r $(MM_OBJECTS) $(MM_I386_OBJECTS) -o objects/mm.o +$(OBJECTS_PATH)/io.o: $(OBJECTS_IO) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/io.o \ + $(OBJECTS_IO) -objects/ob.o: $(OB_OBJECTS) - $(LD) -r $(OB_OBJECTS) -o objects/ob.o +$(OBJECTS_PATH)/ke.o: $(OBJECTS_KE) $(OBJECTS_KE_I386) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/ke.o \ + $(OBJECTS_KE) \ + $(OBJECTS_KE_I386) -objects/ps.o: $(PS_OBJECTS) - $(LD) -r $(PS_OBJECTS) -o objects/ps.o +$(OBJECTS_PATH)/rtl.o: $(OBJECTS_RTL) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/rtl.o \ + $(OBJECTS_RTL) -objects/ex.o: $(EX_OBJECTS) - $(LD) -r $(EX_OBJECTS) -o objects/ex.o +$(OBJECTS_PATH)/mm.o: $(OBJECTS_MM) $(OBJECTS_MM_I386) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/mm.o \ + $(OBJECTS_MM) \ + $(OBJECTS_MM_I386) -objects/fs.o: $(FS_OBJECTS) - $(LD) -r $(FS_OBJECTS) -o objects/fs.o +$(OBJECTS_PATH)/ob.o: $(OBJECTS_OB) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/ob.o \ + $(OBJECTS_OB) -objects/se.o: $(SE_OBJECTS) - $(LD) -r $(SE_OBJECTS) -o objects/se.o +$(OBJECTS_PATH)/ps.o: $(OBJECTS_PS) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/ps.o \ + $(OBJECTS_PS) -objects/cm.o: $(CM_OBJECTS) - $(LD) -r $(CM_OBJECTS) -o objects/cm.o +$(OBJECTS_PATH)/ex.o: $(OBJECTS_EX) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/ex.o \ + $(OBJECTS_EX) -objects/dbg.o: $(DBG_OBJECTS) - $(LD) -r $(DBG_OBJECTS) -o objects/dbg.o +$(OBJECTS_PATH)/fs.o: $(OBJECTS_FS) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/fs.o \ + $(OBJECTS_FS) -objects/ldr.o: $(LDR_OBJECTS) - $(LD) -r $(LDR_OBJECTS) -o objects/ldr.o +$(OBJECTS_PATH)/se.o: $(OBJECTS_SE) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/se.o \ + $(OBJECTS_SE) -objects/nls.o: $(NLS_OBJECTS) - $(LD) -r $(NLS_OBJECTS) -o objects/nls.o +$(OBJECTS_PATH)/cm.o: $(OBJECTS_CM) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/cm.o \ + $(OBJECTS_CM) -objects/nt.o: $(NT_OBJECTS) - $(LD) -r $(NT_OBJECTS) -o objects/nt.o +$(OBJECTS_PATH)/dbg.o: $(OBJECTS_DBG) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/dbg.o \ + $(OBJECTS_DBG) -objects/po.o: $(PO_OBJECTS) - $(LD) -r $(PO_OBJECTS) -o objects/po.o +$(OBJECTS_PATH)/ldr.o: $(OBJECTS_LDR) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/ldr.o \ + $(OBJECTS_LDR) -objects/cc.o: $(CC_OBJECTS) - $(LD) -r $(CC_OBJECTS) -o objects/cc.o +$(OBJECTS_PATH)/nls.o: $(OBJECTS_NLS) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/nls.o \ + $(OBJECTS_NLS) -objects/kd.o: $(KD_OBJECTS) - $(LD) -r $(KD_OBJECTS) -o objects/kd.o +$(OBJECTS_PATH)/nt.o: $(OBJECTS_NT) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/nt.o \ + $(OBJECTS_NT) -$(TARGET).coff: $(TARGET).rc ../include/reactos/resource.h +$(OBJECTS_PATH)/po.o: $(OBJECTS_PO) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/po.o \ + $(OBJECTS_PO) +$(OBJECTS_PATH)/cc.o: $(OBJECTS_CC) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/cc.o \ + $(OBJECTS_CC) -OBJECTS = objects/ke.o objects/rtl.o objects/mm.o \ - objects/io.o objects/ob.o objects/ps.o objects/ex.o \ - objects/se.o objects/cm.o objects/dbg.o objects/nt.o \ - objects/cc.o objects/kd.o objects/ldr.o objects/fs.o \ - objects/po.o objects/nls.o \ - objects/hal.o \ - $(TARGET).coff +$(OBJECTS_PATH)/kd.o: $(OBJECTS_KD) + $(LD) \ + -r \ + -o $(OBJECTS_PATH)/kd.o \ + $(OBJECTS_KD) + +$(TARGETNAME).coff: $(TARGETNAME).rc ../include/reactos/resource.h + + +OBJECTS = \ + $(OBJECTS_PATH)/hal.o \ + $(OBJECTS_PATH)/cc.o \ + $(OBJECTS_PATH)/cm.o \ + $(OBJECTS_PATH)/dbg.o \ + $(OBJECTS_PATH)/ex.o \ + $(OBJECTS_PATH)/fs.o \ + $(OBJECTS_PATH)/io.o \ + $(OBJECTS_PATH)/kd.o \ + $(OBJECTS_PATH)/ke.o \ + $(OBJECTS_PATH)/ldr.o \ + $(OBJECTS_PATH)/mm.o \ + $(OBJECTS_PATH)/nls.o \ + $(OBJECTS_PATH)/nt.o \ + $(OBJECTS_PATH)/ob.o \ + $(OBJECTS_PATH)/po.o \ + $(OBJECTS_PATH)/ps.o \ + $(OBJECTS_PATH)/rtl.o \ + $(OBJECTS_PATH)/se.o \ + $(OBJECTS_RESOURCE) ifeq ($(DOSCLI),yes) -CLEAN_FILES = objects\*.o cc\*.o cm\*.o dbg\*.o ex\*.o hal\x86\*.o io\*.o \ +CLEAN_FILES = $(OBJECTS_PATH)\*.o cc\*.o cm\*.o dbg\*.o ex\*.o hal\x86\*.o io\*.o \ ke\*.o ldr\*.o mm\*.o nt\*.o ob\*.o ps\*.o rtl\*.o se\*.o \ ke\i386\*.o mm\i386\*.o fs\*.o po\*.o nls\*.o \ - kd\*.o utils\export\export.exe $(TARGET).o $(TARGET).a junk.tmp \ - base.tmp temp.exp $(TARGET).exe $(TARGET).sym $(TARGET).coff + kd\*.o utils\export\export.exe $(TARGETNAME).o $(TARGETNAME).a junk.tmp \ + base.tmp temp.exp $(TARGETNAME).exe $(TARGETNAME).sym $(TARGETNAME).coff else -CLEAN_FILES = objects/*.o cc/*.o cm/*.o dbg/*.o ex/*.o hal/x86/*.o io/*.o \ +CLEAN_FILES = $(OBJECTS_PATH)/*.o cc/*.o cm/*.o dbg/*.o ex/*.o hal/x86/*.o io/*.o \ ke/*.o ldr/*.o mm/*.o nt/*.o ob/*.o ps/*.o rtl/*.o se/*.o \ ke/i386/*.o mm/i386/*.o fs/*.o po/*.o nls/*.o \ - kd/*.o utils/export/export $(TARGET).o $(TARGET).a junk.tmp \ - base.tmp temp.exp $(TARGET).exe $(TARGET).sym $(TARGET).coff + kd/*.o utils/export/export $(TARGETNAME).o $(TARGETNAME).a junk.tmp \ + base.tmp temp.exp $(TARGETNAME).exe $(TARGETNAME).sym $(TARGETNAME).coff endif -$(TARGET).nostrip.exe: $(OBJECTS) $(TARGET).def - $(LD) \ - -r $(OBJECTS) \ - -o $(TARGET).o - $(DLLTOOL) \ - --dllname $(TARGET).exe \ - --def $(TARGET).def \ - --kill-at \ - --output-lib $(TARGET).a +$(TARGETNAME).nostrip.exe: $(TARGETNAME).o $(TARGETNAME).a $(IE_DATA) $(CC) \ - $(TARGET).o \ -Wl,-d -specs=../specs \ -mdll \ -o junk.tmp \ @@ -189,41 +424,35 @@ $(TARGET).nostrip.exe: $(OBJECTS) $(TARGET).def -Wl,--defsym,_edata=__data_end__ \ -Wl,--defsym,_end=__bss_end__ \ -Wl,--defsym,_etext=etext \ - -Wl,--base-file,base.tmp + -Wl,--base-file,base.tmp \ + $(TARGETNAME).o - $(RM) junk.tmp $(DLLTOOL) \ - --dllname $(TARGET).exe \ + --dllname $(TARGETNAME).exe \ --base-file base.tmp \ --output-exp temp.exp \ - --def $(TARGET).edf \ + --def $(TARGETNAME).edf \ --kill-at - $(RM) base.tmp $(CC) \ - $(TARGET).o \ -Wl,-d -specs=../specs \ -mdll \ - -o $(TARGET).nostrip.exe \ + -o $(TARGETNAME).nostrip.exe \ -Wl,--image-base,0xc0000000 \ -Wl,--file-alignment,0x1000 \ -Wl,--section-alignment,0x1000 \ -Wl,--defsym,_end=__bss_end__ \ -Wl,--defsym,_edata=__data_end__ \ -Wl,--defsym,_etext=etext \ - -Wl,temp.exp + -Wl,temp.exp \ + $(TARGETNAME).o - $(RM) temp.exp -$(TARGET).exe: $(OBJECTS) $(TARGET).def - $(LD) \ - -r $(OBJECTS) \ - -o $(TARGET).o - $(STRIP) --strip-debug $(TARGET).o - $(DLLTOOL) \ - --dllname $(TARGET).exe \ - --def $(TARGET).def \ - --kill-at \ - --output-lib $(TARGET).a +$(TARGETNAME).exe: $(TARGETNAME).o $(TARGETNAME).a + $(STRIP) \ + --strip-debug \ + $(TARGETNAME).o $(CC) \ - $(TARGET).o \ -Wl,-d -specs=../specs \ -mdll \ -o junk.tmp \ @@ -233,41 +462,44 @@ $(TARGET).exe: $(OBJECTS) $(TARGET).def -Wl,--defsym,_edata=__data_end__ \ -Wl,--defsym,_end=__bss_end__ \ -Wl,--defsym,_etext=etext \ - -Wl,--base-file,base.tmp + -Wl,--base-file,base.tmp \ + $(TARGETNAME).o - $(RM) junk.tmp $(DLLTOOL) \ - --dllname $(TARGET).exe \ + --dllname $(TARGETNAME).exe \ --base-file base.tmp \ --output-exp temp.exp \ - --def $(TARGET).edf \ + --def $(TARGETNAME).edf \ --kill-at - $(RM) base.tmp $(CC) \ - $(TARGET).o \ -Wl,-d -specs=../specs \ -mdll \ - -o $(TARGET).exe \ + -o $(TARGETNAME).exe \ -Wl,--image-base,0xc0000000 \ -Wl,--file-alignment,0x1000 \ -Wl,--section-alignment,0x1000 \ -Wl,--defsym,_end=__bss_end__ \ -Wl,--defsym,_edata=__data_end__ \ -Wl,--defsym,_etext=etext \ - -Wl,temp.exp + -Wl,temp.exp \ + $(TARGETNAME).o - $(RM) temp.exp - $(NM) --numeric-sort $(TARGET).exe > $(TARGET).sym + $(NM) --numeric-sort $(TARGETNAME).exe > $(TARGETNAME).sym -$(TARGET).o: $(OBJECTS) +$(TARGETNAME).o: $(OBJECTS) $(LD) \ - -r $(OBJECTS) \ - -o $(TARGET).o + -r \ + -o $(TARGETNAME).o \ + $(OBJECTS) -$(TARGET).a: $(TARGET).def +$(TARGETNAME).a: $(TARGETNAME).def $(DLLTOOL) \ - --dllname $(TARGET).exe \ - --def $(TARGET).def \ - --output-lib $(TARGET).a + --dllname $(TARGETNAME).exe \ + --def $(TARGETNAME).def \ + --output-lib $(TARGETNAME).a \ + --kill-at clean: $(CLEAN_FILES:%=%_clean) @@ -276,24 +508,24 @@ $(CLEAN_FILES:%=%_clean): %_clean: .PHONY: clean $(CLEAN_FILES:%=%_clean) -floppy: $(FLOPPY_DIR)/$(TARGET).exe +floppy: $(FLOPPY_DIR)/$(TARGETNAME).exe -$(FLOPPY_DIR)/$(TARGET).exe: $(TARGET).exe +$(FLOPPY_DIR)/$(TARGETNAME).exe: $(TARGETNAME).exe ifeq ($(DOSCLI),yes) - $(CP) $(TARGET).exe $(FLOPPY_DIR)\$(TARGET).exe + $(CP) $(TARGETNAME).exe $(FLOPPY_DIR)\$(TARGETNAME).exe else - $(CP) $(TARGET).exe $(FLOPPY_DIR)/$(TARGET).exe + $(CP) $(TARGETNAME).exe $(FLOPPY_DIR)/$(TARGETNAME).exe endif .PHONY: dist -dist: ../$(DIST_DIR)/$(TARGET).exe +dist: ../$(DIST_DIR)/$(TARGETNAME).exe -../$(DIST_DIR)/$(TARGET).exe: $(TARGET).exe +../$(DIST_DIR)/$(TARGETNAME).exe: $(TARGETNAME).exe ifeq ($(DOSCLI),yes) - $(CP) $(TARGET).exe ..\$(DIST_DIR)\$(TARGET).exe + $(CP) $(TARGETNAME).exe ..\$(DIST_DIR)\$(TARGETNAME).exe else - $(CP) $(TARGET).exe ../$(DIST_DIR)/$(TARGET).exe + $(CP) $(TARGETNAME).exe ../$(DIST_DIR)/$(TARGETNAME).exe endif .PHONY: dist diff --git a/reactos/ntoskrnl/ntoskrnl.def b/reactos/ntoskrnl/ntoskrnl.def index 357c17b4be3..d42022fdbb0 100644 --- a/reactos/ntoskrnl/ntoskrnl.def +++ b/reactos/ntoskrnl/ntoskrnl.def @@ -1,4 +1,4 @@ -; $Id: ntoskrnl.def,v 1.68 2000/04/15 23:13:17 ekohl Exp $ +; $Id: ntoskrnl.def,v 1.69 2000/05/01 14:15:02 ea Exp $ ; ; reactos/ntoskrnl/ntoskrnl.def ; @@ -13,6 +13,7 @@ CcReleaseFileCache@8 DbgBreakPoint@0 DbgBreakPointWithStatus@4 DbgPrint +ExAcquireFastMutexUnsafe@4 ExAcquireResourceExclusive ExAcquireResourceExclusiveLite ExAcquireResourceSharedLite @@ -38,7 +39,8 @@ ExFreeToZone ExGetCurrentResourceThread ExGetExclusiveWaiterCount ExGetSharedWaiterCount -ExInitializeFastMutex +;FIXME: ExInitializeFastMutex is a macro! +ExInitializeFastMutex@4 ExInitializeNPagedLookasideList ExInitializePagedLookasideList ExInitializeResource @@ -72,7 +74,7 @@ ExRaiseAccessViolation@0 ExRaiseDatatypeMisalignment@0 ExRaiseStatus@4 ExReinitializeResourceLite -ExReleaseFastMutexUnsafe +ExReleaseFastMutexUnsafe@4 ExReleaseResource ExReleaseResourceLite ExReleaseResourceForThread @@ -777,9 +779,9 @@ RemoveEntryList ; exports from hal.dll ; ; -ExAcquireFastMutex -ExReleaseFastMutex -ExTryToAcquireFastMutex +ExAcquireFastMutex@4 +ExReleaseFastMutex@4 +ExTryToAcquireFastMutex@4 HalAcquireDisplayOwnership@4 HalAdjustResourceList@4 HalAllProcessorsStarted@0 diff --git a/reactos/ntoskrnl/ntoskrnl.edf b/reactos/ntoskrnl/ntoskrnl.edf index 4fcedec01bd..7ec43b495c0 100644 --- a/reactos/ntoskrnl/ntoskrnl.edf +++ b/reactos/ntoskrnl/ntoskrnl.edf @@ -1,4 +1,4 @@ -; $Id: ntoskrnl.edf,v 1.55 2000/04/15 23:13:17 ekohl Exp $ +; $Id: ntoskrnl.edf,v 1.56 2000/05/01 14:15:02 ea Exp $ ; ; reactos/ntoskrnl/ntoskrnl.def ; @@ -13,6 +13,7 @@ CcReleaseFileCache=CcReleaseFileCache@8 DbgBreakPoint=DbgBreakPoint@0 DbgBreakPointWithStatus=DbgBreakPointWithStatus@4 DbgPrint +ExAcquireFastMutexUnsafe=ExAcquireFastMutexUnsafe@4 ExAcquireResourceExclusive ExAcquireResourceExclusiveLite ExAcquireResourceSharedLite @@ -38,7 +39,8 @@ ExFreeToZone ExGetCurrentResourceThread ExGetExclusiveWaiterCount ExGetSharedWaiterCount -ExInitializeFastMutex +;FIXME: ExInitializeFastMutex is a macro! +ExInitializeFastMutex=ExInitializeFastMutex@4 ExInitializeNPagedLookasideList ExInitializePagedLookasideList ExInitializeResource @@ -72,7 +74,7 @@ ExRaiseAccessViolation=ExRaiseAccessViolation@0 ExRaiseDatatypeMisalignment=ExRaiseDatatypeMisalignment@0 ExRaiseStatus=ExRaiseStatus@4 ExReinitializeResourceLite -ExReleaseFastMutexUnsafe +ExReleaseFastMutexUnsafe=ExReleaseFastMutexUnsafe@4 ExReleaseResource ExReleaseResourceLite ExReleaseResourceForThread @@ -712,9 +714,9 @@ RemoveEntryList ; exports from hal.dll ; ; -ExAcquireFastMutex -ExReleaseFastMutex -ExTryToAcquireFastMutex +ExAcquireFastMutex=ExAcquireFastMutex@4 +ExReleaseFastMutex=ExReleaseFastMutex@4 +ExTryToAcquireFastMutex=ExTryToAcquireFastMutex@4 HalAcquireDisplayOwnership=HalAcquireDisplayOwnership@4 HalAdjustResourceList=HalAdjustResourceList@4 HalAllProcessorsStarted=HalAllProcessorsStarted@0 diff --git a/reactos/rules.mak b/reactos/rules.mak index be18d0401fa..cdcb575e58e 100644 --- a/reactos/rules.mak +++ b/reactos/rules.mak @@ -28,7 +28,7 @@ ifeq ($(HOST),mingw32-windows) NASM_FORMAT = win32 PREFIX = EXE_POSTFIX = .exe -CP = copy +CP = copy /B DLLTOOL = $(PREFIX)dlltool --as=$(PREFIX)as NASM_CMD = nasm RM = del -- 2.17.1