mirror of
https://github.com/reactos/reactos.git
synced 2025-06-01 07:28:19 +00:00
ELF_support, welcome to HEAD! (just in time for the freeze, too!)
svn path=/trunk/; revision=12400
This commit is contained in:
parent
ca61e32c5c
commit
6948c64efb
9 changed files with 787 additions and 351 deletions
|
@ -17,4 +17,14 @@ struct _EPROCESS;
|
||||||
#define NTAPI STDCALL
|
#define NTAPI STDCALL
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define MINCHAR (0x80)
|
||||||
|
#define MAXCHAR (0x7F)
|
||||||
|
#define MINSHORT (0x8000)
|
||||||
|
#define MAXSHORT (0x7FFF)
|
||||||
|
#define MINLONG (0x80000000)
|
||||||
|
#define MAXLONG (0x7FFFFFFF)
|
||||||
|
#define MAXUCHAR (0xFF)
|
||||||
|
#define MAXUSHORT (0xFFFF)
|
||||||
|
#define MAXULONG (0xFFFFFFFF)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: zw.h,v 1.39 2004/12/23 20:12:51 ekohl Exp $
|
/* $Id: zw.h,v 1.40 2004/12/30 08:05:10 hyperion Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -6479,7 +6479,7 @@ ZwQuerySection(
|
||||||
|
|
||||||
typedef struct _SECTION_IMAGE_INFORMATION
|
typedef struct _SECTION_IMAGE_INFORMATION
|
||||||
{
|
{
|
||||||
PVOID EntryPoint;
|
ULONG EntryPoint;
|
||||||
ULONG Unknown1;
|
ULONG Unknown1;
|
||||||
ULONG StackReserve;
|
ULONG StackReserve;
|
||||||
ULONG StackCommit;
|
ULONG StackCommit;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: create.c,v 1.91 2004/12/18 13:26:57 weiden Exp $
|
/* $Id: create.c,v 1.92 2004/12/30 08:05:11 hyperion Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS system libraries
|
* PROJECT: ReactOS system libraries
|
||||||
|
@ -12,6 +12,7 @@
|
||||||
/* INCLUDES ****************************************************************/
|
/* INCLUDES ****************************************************************/
|
||||||
|
|
||||||
#include <k32.h>
|
#include <k32.h>
|
||||||
|
#include <pseh/framebased.h>
|
||||||
|
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include "../include/debug.h"
|
#include "../include/debug.h"
|
||||||
|
@ -1385,11 +1386,11 @@ CreateProcessW
|
||||||
* Create the thread for the kernel
|
* Create the thread for the kernel
|
||||||
*/
|
*/
|
||||||
DPRINT("Creating thread for process (EntryPoint = 0x%.08x)\n",
|
DPRINT("Creating thread for process (EntryPoint = 0x%.08x)\n",
|
||||||
ImageBaseAddress + (ULONG)Sii.EntryPoint);
|
(PVOID)((ULONG_PTR)ImageBaseAddress + Sii.EntryPoint));
|
||||||
hThread = KlCreateFirstThread(hProcess,
|
hThread = KlCreateFirstThread(hProcess,
|
||||||
lpThreadAttributes,
|
lpThreadAttributes,
|
||||||
&Sii,
|
&Sii,
|
||||||
ImageBaseAddress + (ULONG)Sii.EntryPoint,
|
(PVOID)((ULONG_PTR)ImageBaseAddress + Sii.EntryPoint),
|
||||||
dwCreationFlags,
|
dwCreationFlags,
|
||||||
&lpProcessInformation->dwThreadId);
|
&lpProcessInformation->dwThreadId);
|
||||||
if (hThread == INVALID_HANDLE_VALUE)
|
if (hThread == INVALID_HANDLE_VALUE)
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
/* $Id: random.c,v 1.3 2004/08/07 19:13:25 ion Exp $
|
/* $Id: random.c,v 1.4 2004/12/30 08:05:11 hyperion Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
|
@ -31,8 +31,6 @@
|
||||||
#define NDEBUG
|
#define NDEBUG
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
|
|
||||||
#define MAXLONG (0x7fffffff)
|
|
||||||
|
|
||||||
static ULONG SavedValue[128] =
|
static ULONG SavedValue[128] =
|
||||||
{
|
{
|
||||||
0x4c8bc0aa, 0x4c022957, 0x2232827a, 0x2f1e7626, /* 0 */
|
0x4c8bc0aa, 0x4c022957, 0x2232827a, 0x2f1e7626, /* 0 */
|
||||||
|
|
|
@ -144,6 +144,8 @@ OBJECTS_MM = \
|
||||||
mm/balance.o \
|
mm/balance.o \
|
||||||
mm/cont.o \
|
mm/cont.o \
|
||||||
mm/drvlck.o \
|
mm/drvlck.o \
|
||||||
|
mm/elf32.o \
|
||||||
|
mm/elf64.o \
|
||||||
mm/freelist.o \
|
mm/freelist.o \
|
||||||
mm/iospace.o \
|
mm/iospace.o \
|
||||||
mm/kmap.o \
|
mm/kmap.o \
|
||||||
|
@ -159,6 +161,7 @@ OBJECTS_MM = \
|
||||||
mm/pageop.o \
|
mm/pageop.o \
|
||||||
mm/pager.o \
|
mm/pager.o \
|
||||||
mm/paging.o \
|
mm/paging.o \
|
||||||
|
mm/pe.o \
|
||||||
mm/pool.o \
|
mm/pool.o \
|
||||||
mm/ppool.o \
|
mm/ppool.o \
|
||||||
mm/physical.o \
|
mm/physical.o \
|
||||||
|
|
|
@ -71,6 +71,26 @@ typedef ULONG PFN_TYPE, *PPFN_TYPE;
|
||||||
PAGE_NOACCESS | \
|
PAGE_NOACCESS | \
|
||||||
PAGE_NOCACHE)
|
PAGE_NOCACHE)
|
||||||
|
|
||||||
|
#define PAGE_IS_READABLE (PAGE_READONLY | \
|
||||||
|
PAGE_READWRITE | \
|
||||||
|
PAGE_WRITECOPY | \
|
||||||
|
PAGE_EXECUTE_READ | \
|
||||||
|
PAGE_EXECUTE_READWRITE | \
|
||||||
|
PAGE_EXECUTE_WRITECOPY)
|
||||||
|
|
||||||
|
#define PAGE_IS_WRITABLE (PAGE_READWRITE | \
|
||||||
|
PAGE_WRITECOPY | \
|
||||||
|
PAGE_EXECUTE_READWRITE | \
|
||||||
|
PAGE_EXECUTE_WRITECOPY)
|
||||||
|
|
||||||
|
#define PAGE_IS_EXECUTABLE (PAGE_EXECUTE | \
|
||||||
|
PAGE_EXECUTE_READ | \
|
||||||
|
PAGE_EXECUTE_READWRITE | \
|
||||||
|
PAGE_EXECUTE_WRITECOPY)
|
||||||
|
|
||||||
|
#define PAGE_IS_WRITECOPY (PAGE_WRITECOPY | \
|
||||||
|
PAGE_EXECUTE_WRITECOPY)
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
ULONG Entry[NR_SECTION_PAGE_ENTRIES];
|
ULONG Entry[NR_SECTION_PAGE_ENTRIES];
|
||||||
|
@ -86,38 +106,35 @@ typedef struct
|
||||||
#define MM_PAGEFILE_SEGMENT (0x1)
|
#define MM_PAGEFILE_SEGMENT (0x1)
|
||||||
#define MM_DATAFILE_SEGMENT (0x2)
|
#define MM_DATAFILE_SEGMENT (0x2)
|
||||||
|
|
||||||
#define MM_SECTION_SEGMENT_BSS (0x1)
|
|
||||||
|
|
||||||
typedef struct _MM_SECTION_SEGMENT
|
typedef struct _MM_SECTION_SEGMENT
|
||||||
{
|
{
|
||||||
ULONG FileOffset;
|
LONGLONG FileOffset;
|
||||||
ULONG Protection;
|
ULONG_PTR VirtualAddress;
|
||||||
ULONG Attributes;
|
|
||||||
ULONG Length;
|
|
||||||
ULONG RawLength;
|
ULONG RawLength;
|
||||||
|
ULONG Length;
|
||||||
|
ULONG Protection;
|
||||||
FAST_MUTEX Lock;
|
FAST_MUTEX Lock;
|
||||||
ULONG ReferenceCount;
|
ULONG ReferenceCount;
|
||||||
SECTION_PAGE_DIRECTORY PageDirectory;
|
SECTION_PAGE_DIRECTORY PageDirectory;
|
||||||
ULONG Flags;
|
ULONG Flags;
|
||||||
PVOID VirtualAddress;
|
|
||||||
ULONG Characteristics;
|
ULONG Characteristics;
|
||||||
BOOLEAN WriteCopy;
|
BOOLEAN WriteCopy;
|
||||||
} MM_SECTION_SEGMENT, *PMM_SECTION_SEGMENT;
|
} MM_SECTION_SEGMENT, *PMM_SECTION_SEGMENT;
|
||||||
|
|
||||||
typedef struct _MM_IMAGE_SECTION_OBJECT
|
typedef struct _MM_IMAGE_SECTION_OBJECT
|
||||||
{
|
{
|
||||||
PVOID ImageBase;
|
ULONG_PTR ImageBase;
|
||||||
PVOID EntryPoint;
|
ULONG_PTR StackReserve;
|
||||||
ULONG StackReserve;
|
ULONG_PTR StackCommit;
|
||||||
ULONG StackCommit;
|
ULONG EntryPoint;
|
||||||
ULONG Subsystem;
|
ULONG Subsystem;
|
||||||
ULONG MinorSubsystemVersion;
|
|
||||||
ULONG MajorSubsystemVersion;
|
|
||||||
ULONG ImageCharacteristics;
|
ULONG ImageCharacteristics;
|
||||||
|
USHORT MinorSubsystemVersion;
|
||||||
|
USHORT MajorSubsystemVersion;
|
||||||
USHORT Machine;
|
USHORT Machine;
|
||||||
BOOLEAN Executable;
|
BOOLEAN Executable;
|
||||||
ULONG NrSegments;
|
ULONG NrSegments;
|
||||||
MM_SECTION_SEGMENT Segments[0];
|
PMM_SECTION_SEGMENT Segments;
|
||||||
} MM_IMAGE_SECTION_OBJECT, *PMM_IMAGE_SECTION_OBJECT;
|
} MM_IMAGE_SECTION_OBJECT, *PMM_IMAGE_SECTION_OBJECT;
|
||||||
|
|
||||||
typedef struct _SECTION_OBJECT
|
typedef struct _SECTION_OBJECT
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
*/
|
*/
|
||||||
/* $Id: page.c,v 1.79 2004/12/24 17:07:00 navaraf Exp $
|
/* $Id: page.c,v 1.80 2004/12/30 08:05:11 hyperion Exp $
|
||||||
*
|
*
|
||||||
* PROJECT: ReactOS kernel
|
* PROJECT: ReactOS kernel
|
||||||
* FILE: ntoskrnl/mm/i386/page.c
|
* FILE: ntoskrnl/mm/i386/page.c
|
||||||
|
@ -146,11 +146,11 @@ ProtectToPTE(ULONG flProtect)
|
||||||
{
|
{
|
||||||
Attributes = 0;
|
Attributes = 0;
|
||||||
}
|
}
|
||||||
else if (flProtect & (PAGE_READWRITE|PAGE_EXECUTE_READWRITE))
|
else if (flProtect & PAGE_IS_WRITABLE)
|
||||||
{
|
{
|
||||||
Attributes = PA_PRESENT | PA_READWRITE;
|
Attributes = PA_PRESENT | PA_READWRITE;
|
||||||
}
|
}
|
||||||
else if (flProtect & (PAGE_READONLY|PAGE_EXECUTE|PAGE_EXECUTE_READ))
|
else if (flProtect & (PAGE_IS_READABLE | PAGE_IS_EXECUTABLE))
|
||||||
{
|
{
|
||||||
Attributes = PA_PRESENT;
|
Attributes = PA_PRESENT;
|
||||||
}
|
}
|
||||||
|
@ -160,7 +160,7 @@ ProtectToPTE(ULONG flProtect)
|
||||||
KEBUGCHECK(0);
|
KEBUGCHECK(0);
|
||||||
}
|
}
|
||||||
if (Ke386NoExecute &&
|
if (Ke386NoExecute &&
|
||||||
!(flProtect & (PAGE_EXECUTE|PAGE_EXECUTE_READ|PAGE_EXECUTE_READWRITE)))
|
!(flProtect & PAGE_IS_EXECUTABLE))
|
||||||
{
|
{
|
||||||
Attributes = Attributes | 0x80000000;
|
Attributes = Attributes | 0x80000000;
|
||||||
}
|
}
|
||||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1486,19 +1486,19 @@ typedef struct _SECTION_BASIC_INFORMATION {
|
||||||
} SECTION_BASIC_INFORMATION, *PSECTION_BASIC_INFORMATION;
|
} SECTION_BASIC_INFORMATION, *PSECTION_BASIC_INFORMATION;
|
||||||
|
|
||||||
typedef struct _SECTION_IMAGE_INFORMATION {
|
typedef struct _SECTION_IMAGE_INFORMATION {
|
||||||
PVOID EntryPoint;
|
ULONG EntryPoint;
|
||||||
ULONG Unknown1;
|
ULONG Unknown1;
|
||||||
ULONG StackReserve;
|
ULONG_PTR StackReserve;
|
||||||
ULONG StackCommit;
|
ULONG_PTR StackCommit;
|
||||||
ULONG Subsystem;
|
ULONG Subsystem;
|
||||||
USHORT MinorSubsystemVersion;
|
USHORT MinorSubsystemVersion;
|
||||||
USHORT MajorSubsystemVersion;
|
USHORT MajorSubsystemVersion;
|
||||||
ULONG Unknown2;
|
ULONG Unknown2;
|
||||||
ULONG Characteristics;
|
ULONG Characteristics;
|
||||||
USHORT ImageNumber;
|
USHORT ImageNumber;
|
||||||
BOOLEAN Executable;
|
BOOLEAN Executable;
|
||||||
UCHAR Unknown3;
|
UCHAR Unknown3;
|
||||||
ULONG Unknown4[3];
|
ULONG Unknown4[3];
|
||||||
} SECTION_IMAGE_INFORMATION, *PSECTION_IMAGE_INFORMATION;
|
} SECTION_IMAGE_INFORMATION, *PSECTION_IMAGE_INFORMATION;
|
||||||
|
|
||||||
#if (VER_PRODUCTBUILD >= 2600)
|
#if (VER_PRODUCTBUILD >= 2600)
|
||||||
|
|
Loading…
Reference in a new issue