mirror of
https://github.com/reactos/reactos.git
synced 2025-05-31 23:18:39 +00:00
Sync with trunk (r48144)
svn path=/branches/reactos-yarotows/; revision=48150
This commit is contained in:
commit
251d21958c
33 changed files with 420 additions and 171 deletions
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
/*
|
||||
* German language file by Klemens Friedl <frik85> 2005-06-03
|
||||
* Update: frik85 2005-06-06
|
||||
*/
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
/*
|
||||
* Japanese translation of CMD
|
||||
*/
|
||||
#pragma code_page(65001)
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/*
|
||||
/*
|
||||
* Russian language file by
|
||||
* Andrey Korotaev (unC0Rr@inbox.ru)
|
||||
* and
|
||||
|
|
|
@ -438,9 +438,11 @@ LoadFreeLoader:
|
|||
|
||||
mov dl,[BYTE bp+BootDrive]
|
||||
mov dh,[BYTE bp+BootPartition]
|
||||
push byte 0 ; We loaded at 0000:8000
|
||||
push WORD 8000h ; We will do a far return to 0000:8000h
|
||||
retf ; Transfer control to FreeLoader
|
||||
push 0 ; push segment (0x0000)
|
||||
mov eax, [0x8000 + 0xA8] ; load the RVA of the EntryPoint into eax
|
||||
add eax, 0x8000 ; RVA -> VA
|
||||
push ax ; push offset
|
||||
retf ; Transfer control to FreeLoader
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -209,7 +209,11 @@ FoundFreeLoader:
|
|||
; because they contain a jump instruction to skip
|
||||
; over the helper code in the FreeLoader image.
|
||||
;jmp 0000:8003h
|
||||
jmp 8003h
|
||||
push 0 ; push segment (0x0000)
|
||||
mov eax, [0x8000 + 0xA8] ; load the RVA of the EntryPoint into eax
|
||||
add eax, 0x8003 ; RVA -> VA and skip 3 bytes (jump to fathelper code)
|
||||
push ax ; push offset
|
||||
retf ; Transfer control to FreeLoader
|
||||
|
||||
|
||||
|
||||
|
@ -387,10 +391,10 @@ NoCarryCHS:
|
|||
|
||||
|
||||
msgDiskError db 'Disk error',0dh,0ah,0
|
||||
msgFreeLdr db 'freeldr.sys not found',0dh,0ah,0
|
||||
msgFreeLdr db 'ldr not found',0dh,0ah,0
|
||||
; Sorry, need the space...
|
||||
;msgAnyKey db 'Press any key to restart',0dh,0ah,0
|
||||
msgAnyKey db 'Press any key',0dh,0ah,0
|
||||
msgAnyKey db 'Press a key',0dh,0ah,0
|
||||
filename db 'FREELDR SYS'
|
||||
|
||||
times 509-($-$$) db 0 ; Pad to 509 bytes
|
||||
|
|
|
@ -390,11 +390,12 @@ LoadFile:
|
|||
LoadFileDone:
|
||||
mov dl,[BYTE bp+BootDrive] ; Load boot drive into DL
|
||||
mov dh,[BootPartition] ; Load boot partition into DH
|
||||
xor ax,ax
|
||||
push ax ; We loaded at 0000:8000
|
||||
push WORD 8000h ; We will do a far return to 0000:8000h
|
||||
retf ; Transfer control to ROSLDR
|
||||
|
||||
push 0 ; push segment (0x0000)
|
||||
mov eax, [0x8000 + 0xA8] ; load the RVA of the EntryPoint into eax
|
||||
add eax, 0x8000 ; RVA -> VA
|
||||
push ax ; push offset
|
||||
retf ; Transfer control to FreeLoader
|
||||
|
||||
; Returns the FAT entry for a given cluster number
|
||||
; On entry EAX has cluster number
|
||||
|
|
|
@ -373,7 +373,11 @@ get_fs_structures:
|
|||
|
||||
mov dl, [DriveNo] ; dl = boot drive
|
||||
mov dh, 0 ; dh = boot partition
|
||||
jmp 0:0x8000 ; jump into OSLoader
|
||||
push 0 ; push segment (0x0000)
|
||||
mov eax, [0x8000 + 0xA8] ; load the RVA of the EntryPoint into eax
|
||||
add eax, 0x8000 ; RVA -> VA
|
||||
push ax ; push offset
|
||||
retf ; Transfer control to ROSLDR
|
||||
|
||||
|
||||
|
||||
|
@ -922,38 +926,38 @@ pollchar_and_empty:
|
|||
|
||||
|
||||
isolinux_banner db CR, LF, 'Loading IsoBoot...', CR, LF, 0
|
||||
copyright_str db ' Copyright (C) 1994-2002 H. Peter Anvin', CR, LF, 0
|
||||
copyright_str db ' (C) 1994-2002 H. Peter Anvin', CR, LF, 0
|
||||
presskey_msg db 'Press any key to boot from CD', 0
|
||||
dot_msg db '.',0
|
||||
|
||||
%ifdef DEBUG_MESSAGES
|
||||
startup_msg: db 'Starting up, DL = ', 0
|
||||
spec_ok_msg: db 'Loaded spec packet OK, drive = ', 0
|
||||
secsize_msg: db 'Sector size appears to be ', 0
|
||||
rootloc_msg: db 'Root directory location: ', 0
|
||||
rootlen_msg: db 'Root directory length: ', 0
|
||||
rootsect_msg: db 'Root directory length(sectors): ', 0
|
||||
fileloc_msg: db 'SETUPLDR.SYS location: ', 0
|
||||
filelen_msg: db 'SETUPLDR.SYS length: ', 0
|
||||
filesect_msg: db 'SETUPLDR.SYS length(sectors): ', 0
|
||||
startup_msg: db 'Startup, DL = ', 0
|
||||
spec_ok_msg: db 'packet OK, drive = ', 0
|
||||
secsize_msg: db 'size appears to be ', 0
|
||||
rootloc_msg: db 'Root dir loc: ', 0
|
||||
rootlen_msg: db 'Root dir len: ', 0
|
||||
rootsect_msg: db 'Root dir len(sect): ', 0
|
||||
fileloc_msg: db 'SETUPLDR loc: ', 0
|
||||
filelen_msg: db 'SETUPLDR len: ', 0
|
||||
filesect_msg: db 'SETUPLDR len(sect): ', 0
|
||||
findfail_msg: db 'Failed to find file!', 0
|
||||
startldr_msg: db 'Starting SETUPLDR.SYS', 0
|
||||
%endif
|
||||
|
||||
nosecsize_msg: db 'Failed to get sector size, assuming 0800', CR, LF, 0
|
||||
spec_err_msg: db 'Loading spec packet failed, trying to wing it...', CR, LF, 0
|
||||
maybe_msg: db 'Found something at drive = ', 0
|
||||
alright_msg: db 'Looks like it might be right, continuing...', CR, LF, 0
|
||||
nothing_msg: db 'Failed to locate CD-ROM device; boot failed.', CR, LF, 0
|
||||
nosecsize_msg: db 'No sector size, assume 0800', CR, LF, 0
|
||||
spec_err_msg: db 'Load spec failed, trying wing ...', CR, LF, 0
|
||||
maybe_msg: db 'Found smth at drive = ', 0
|
||||
alright_msg: db 'might be ok, continuing...', CR, LF, 0
|
||||
nothing_msg: db 'Failed locate CD-ROM; boot failed.', CR, LF, 0
|
||||
isolinux_str db 'IsoBoot: ', 0
|
||||
crlf_msg db CR, LF, 0
|
||||
diskerr_msg: db 'Disk error ', 0
|
||||
ondrive_str: db ', drive ', 0
|
||||
err_bootfailed db CR, LF, 'Boot failed: press a key to retry...'
|
||||
err_bootfailed db CR, LF, 'failed..', 0
|
||||
isolinux_dir db '\LOADER', 0
|
||||
no_dir_msg db 'Could not find the LOADER directory.', CR, LF, 0
|
||||
no_dir_msg db 'LOADER dir not found.', CR, LF, 0
|
||||
isolinux_bin db 'SETUPLDR.SYS', 0
|
||||
no_isolinux_msg db 'Could not find SETUPLDR.SYS.', CR, LF, 0
|
||||
no_isolinux_msg db 'SETUPLDR not found.', CR, LF, 0
|
||||
|
||||
;
|
||||
; El Torito spec packet
|
||||
|
|
|
@ -345,7 +345,11 @@ get_fs_structures:
|
|||
|
||||
mov dl, [DriveNo] ; dl = boot drive
|
||||
mov dh, 0 ; dh = boot partition
|
||||
jmp 0:0x8000 ; jump into OSLoader
|
||||
push 0 ; push segment (0x0000)
|
||||
mov eax, [0x8000 + 0xA8] ; load the RVA of the EntryPoint into eax
|
||||
add eax, 0x8000 ; RVA -> VA
|
||||
push ax ; push offset
|
||||
retf ; Transfer control to ROSLDR
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,14 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<if property="ARCH" value="i386">
|
||||
<property name="BASEADDRESS_FREELDR" value="0x8000" />
|
||||
<endif>
|
||||
|
||||
<!DOCTYPE group SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<group>
|
||||
<if property="ARCH" value="i386">
|
||||
<module name="freeldr" type="bootloader">
|
||||
<module name="freeldr" type="bootloader" baseaddress="$(BASEADDRESS_FREELDR)">
|
||||
<linkerscript>freeldr_$(ARCH).lnk</linkerscript>
|
||||
<bootstrap installbase="loader" />
|
||||
<library>freeldr_startup</library>
|
||||
<library>freeldr_base64k</library>
|
||||
|
@ -15,8 +21,9 @@
|
|||
<library>rtl</library>
|
||||
<library>libcntpr</library>
|
||||
<group linkerset="ld">
|
||||
<linkerflag>-static</linkerflag>
|
||||
<linkerflag>-lgcc</linkerflag>
|
||||
<!-- linkerflag>-static</linkerflag -->
|
||||
<linkerflag>-nostartfiles</linkerflag>
|
||||
|
||||
</group>
|
||||
</module>
|
||||
</if>
|
||||
|
|
57
boot/freeldr/freeldr/freeldr_amd64.lnk
Normal file
57
boot/freeldr/freeldr/freeldr_amd64.lnk
Normal file
|
@ -0,0 +1,57 @@
|
|||
OUTPUT_FORMAT(pei-x86-64)
|
||||
ENTRY(_mainCRTStartup)
|
||||
SECTIONS
|
||||
{
|
||||
.text __image_base__ + __section_alignment__ :
|
||||
{
|
||||
__text_start__ = .;
|
||||
*(.init)
|
||||
*(.text)
|
||||
*(SORT(.text$*))
|
||||
*(.glue_7t)
|
||||
*(.glue_7)
|
||||
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
|
||||
LONG (-1); *(.ctors); *(.ctor); LONG (0);
|
||||
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
|
||||
LONG (-1); *(.dtors); *(.dtor); LONG (0);
|
||||
*(.fini)
|
||||
/* ??? Why is .gcc_exc here? */
|
||||
*(.gcc_exc)
|
||||
__text_end__ = .;
|
||||
*(.gcc_except_table)
|
||||
}
|
||||
init BLOCK(__section_alignment__) :
|
||||
{
|
||||
__init_start__ = . ;
|
||||
*(init)
|
||||
__init_end__ = . ;
|
||||
}
|
||||
.data BLOCK(__section_alignment__) :
|
||||
{
|
||||
__data_start__ = . ;
|
||||
*(.data)
|
||||
*(.data2)
|
||||
*(SORT(.data$*))
|
||||
__data_end__ = . ;
|
||||
__bss_start__ = . ;
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
__bss_end__ = . ;
|
||||
}
|
||||
.rdata BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.rdata)
|
||||
*(SORT(.rdata$*))
|
||||
*(.eh_frame)
|
||||
}
|
||||
.stab BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
[ .stab ]
|
||||
}
|
||||
.stabstr BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
[ .stabstr ]
|
||||
}
|
||||
|
||||
}
|
||||
|
57
boot/freeldr/freeldr/freeldr_i386.lnk
Normal file
57
boot/freeldr/freeldr/freeldr_i386.lnk
Normal file
|
@ -0,0 +1,57 @@
|
|||
OUTPUT_FORMAT(pei-i386)
|
||||
ENTRY(_mainCRTStartup)
|
||||
SECTIONS
|
||||
{
|
||||
.text __image_base__ + __section_alignment__ :
|
||||
{
|
||||
__text_start__ = .;
|
||||
*(.init)
|
||||
*(.text)
|
||||
*(SORT(.text$*))
|
||||
*(.glue_7t)
|
||||
*(.glue_7)
|
||||
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
|
||||
LONG (-1); *(.ctors); *(.ctor); LONG (0);
|
||||
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
|
||||
LONG (-1); *(.dtors); *(.dtor); LONG (0);
|
||||
*(.fini)
|
||||
/* ??? Why is .gcc_exc here? */
|
||||
*(.gcc_exc)
|
||||
__text_end__ = .;
|
||||
*(.gcc_except_table)
|
||||
}
|
||||
init BLOCK(__section_alignment__) :
|
||||
{
|
||||
__init_start__ = . ;
|
||||
*(init)
|
||||
__init_end__ = . ;
|
||||
}
|
||||
.data BLOCK(__section_alignment__) :
|
||||
{
|
||||
__data_start__ = . ;
|
||||
*(.data)
|
||||
*(.data2)
|
||||
*(SORT(.data$*))
|
||||
__data_end__ = . ;
|
||||
__bss_start__ = . ;
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
__bss_end__ = . ;
|
||||
}
|
||||
.rdata BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.rdata)
|
||||
*(SORT(.rdata$*))
|
||||
*(.eh_frame)
|
||||
}
|
||||
.stab BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
[ .stab ]
|
||||
}
|
||||
.stabstr BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
[ .stabstr ]
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">
|
||||
<module name="setupldr" type="bootloader">
|
||||
<linkerscript>freeldr_$(ARCH).lnk</linkerscript>
|
||||
<bootstrap installbase="loader" />
|
||||
<library>freeldr_startup</library>
|
||||
<library>freeldr_base64k</library>
|
||||
|
@ -15,8 +16,9 @@
|
|||
<library>rtl</library>
|
||||
<library>libcntpr</library>
|
||||
<group linkerset="ld">
|
||||
<linkerflag>-nostartfiles</linkerflag>
|
||||
<linkerflag>-nostdlib</linkerflag>
|
||||
<linkerflag>-lgcc</linkerflag>
|
||||
<!-- linkerflag>-nostartfiles</linkerflag -->
|
||||
<!-- linkerflag>-nostdlib</linkerflag -->
|
||||
<!-- linkerflag>--strip-all</linkerflag -->
|
||||
<linkerflag>-Tbss 0x50000</linkerflag>
|
||||
</group>
|
||||
</module>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
#define PROPSHEETHEIGHT 228
|
||||
#define PROPSHEETPADDING(x) (x+x+x+x+x+x)
|
||||
#define SYSTEM_COLUMN (18*PROPSHEETPADDING)
|
||||
#define LABELLINE(x) (x+x+x+2+x+x+x+x+x+x)
|
||||
#define LABELLINE(x) (x+x+x+x+x+x+x+x+x+2)
|
||||
|
||||
|
||||
#define ICONSIZE 16
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
#pragma code_page(65001)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
#pragma code_page(65001)
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Romanian language resource file (Petru Dimitriu, 2009-07-15)
|
||||
// Romanian language resource file (Petru Dimitriu, 2009-07-15)
|
||||
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
|
||||
|
||||
#pragma code_page(65001)
|
||||
|
||||
|
|
|
@ -11,6 +11,11 @@
|
|||
<xi:include href="compbatt/compbatt.rbuild" />
|
||||
</directory>
|
||||
|
||||
<if property="ARCH" value="i386">
|
||||
<group compilerset="msc">
|
||||
<define name="WIN32"/>
|
||||
</group>
|
||||
</if>
|
||||
|
||||
<module name="acpi" type="kernelmodedriver" installbase="system32/drivers" installname="acpi.sys" allowwarnings="true">
|
||||
<bootstrap installbase="$(CDOUTPUT)" />
|
||||
|
|
|
@ -128,7 +128,7 @@ typedef unsigned char boolean;
|
|||
(RpcExceptionCode() == RPC_X_BAD_STUB_DATA) || \
|
||||
(RpcExceptionCode() == RPC_S_INVALID_BOUND))
|
||||
|
||||
typedef struct
|
||||
typedef struct tagNDR_SCONTEXT
|
||||
{
|
||||
void *pad[2];
|
||||
void *userContext;
|
||||
|
|
|
@ -100,9 +100,9 @@ Abstract:
|
|||
#define NTDDI_WIN7 0x06010000
|
||||
|
||||
/* Version Fields in NTDDI_VERSION */
|
||||
#define OSVERSION_MASK 0xFFFF0000
|
||||
#define SPVERSION_MASK 0x0000FF00
|
||||
#define SUBVERSION_MASK 0x000000FF
|
||||
#define OSVERSION_MASK 0xFFFF0000UL
|
||||
#define SPVERSION_MASK 0x0000FF00UL
|
||||
#define SUBVERSION_MASK 0x000000FFUL
|
||||
|
||||
/* Macros to Extract Version Fields From NTDDI_VERSION */
|
||||
#define OSVER(Version) ((Version) & OSVERSION_MASK)
|
||||
|
|
|
@ -1,83 +0,0 @@
|
|||
Index: internal.h
|
||||
===================================================================
|
||||
--- internal.h (Revision 46537)
|
||||
+++ internal.h (Arbeitskopie)
|
||||
@@ -35,6 +35,12 @@
|
||||
#define __IOINFO_TM_UTF8 1
|
||||
#define __IOINFO_TM_UTF16LE 2
|
||||
|
||||
+#ifdef _MSC_VER
|
||||
+#pragma warning(push)
|
||||
+#pragma warning(disable:4214)
|
||||
+#pragma warning(disable:4820)
|
||||
+#endif
|
||||
+
|
||||
typedef struct {
|
||||
intptr_t osfhnd;
|
||||
char osfile;
|
||||
@@ -46,6 +52,10 @@
|
||||
char pipech2[2];
|
||||
} ioinfo;
|
||||
|
||||
+#ifdef _MSC_VER
|
||||
+#pragma warning(pop)
|
||||
+#endif
|
||||
+
|
||||
#define IOINFO_ARRAY_ELTS (1 << 5)
|
||||
|
||||
#define _pioinfo(i) (__pioinfo[(i) >> 5] + ((i) & (IOINFO_ARRAY_ELTS - 1)))
|
||||
Index: oscalls.h
|
||||
===================================================================
|
||||
--- oscalls.h (Revision 46537)
|
||||
+++ oscalls.h (Arbeitskopie)
|
||||
@@ -30,6 +30,11 @@
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+#ifdef _MSC_VER
|
||||
+#pragma warning(push)
|
||||
+#pragma warning(disable:4214)
|
||||
+#endif
|
||||
+
|
||||
typedef struct _FTIME
|
||||
{
|
||||
unsigned short twosecs : 5;
|
||||
@@ -46,6 +51,10 @@
|
||||
unsigned short year : 7;
|
||||
} FDATE;
|
||||
|
||||
+#ifdef _MSC_VER
|
||||
+#pragma warning(pop)
|
||||
+#endif
|
||||
+
|
||||
typedef FDATE *PFDATE;
|
||||
|
||||
#endif
|
||||
Index: sect_attribs.h
|
||||
===================================================================
|
||||
--- sect_attribs.h (Revision 46537)
|
||||
+++ sect_attribs.h (Arbeitskopie)
|
||||
@@ -10,7 +10,7 @@
|
||||
#define _ATTRIBUTES shared
|
||||
#endif
|
||||
|
||||
-#if 0
|
||||
+#if defined(_MSC_VER)
|
||||
/* Reference list of existing section for msvcrt. */
|
||||
#pragma section(".CRTMP$XCA",long,_ATTRIBUTES)
|
||||
#pragma section(".CRTMP$XCZ",long,_ATTRIBUTES)
|
||||
@@ -55,6 +55,14 @@
|
||||
#pragma section(".rtc$IZZ",long,read)
|
||||
#pragma section(".rtc$TAA",long,read)
|
||||
#pragma section(".rtc$TZZ",long,read)
|
||||
+#pragma section(".tls",long,read,write)
|
||||
+#pragma section(".tls$ZZZ",long,read,write)
|
||||
#endif
|
||||
|
||||
+#if defined(_MSC_VER)
|
||||
+#define _CRTALLOC(x) __declspec(allocate(x))
|
||||
+#elif defined(__GNUC__)
|
||||
#define _CRTALLOC(x) __attribute__ ((section (x) ))
|
||||
+#else
|
||||
+#error
|
||||
+#endif
|
|
@ -4,13 +4,14 @@
|
|||
* No warranty is given; refer to the file DISCLAIMER.PD within this package.
|
||||
*/
|
||||
|
||||
#if defined (__ia64__) || defined (__x86_64)
|
||||
#if defined(_MSC_VER)
|
||||
|
||||
#if defined(_M_IA64) || defined(_M_AMD64)
|
||||
#define _ATTRIBUTES
|
||||
#else
|
||||
#define _ATTRIBUTES shared
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
/* Reference list of existing section for msvcrt. */
|
||||
#pragma section(".CRTMP$XCA",long,_ATTRIBUTES)
|
||||
#pragma section(".CRTMP$XCZ",long,_ATTRIBUTES)
|
||||
|
@ -55,14 +56,17 @@
|
|||
#pragma section(".rtc$IZZ",long,read)
|
||||
#pragma section(".rtc$TAA",long,read)
|
||||
#pragma section(".rtc$TZZ",long,read)
|
||||
/* for tlssup.c: */
|
||||
#pragma section(".tls",long,read,write)
|
||||
#pragma section(".tls$AAA",long,read,write)
|
||||
#pragma section(".tls$ZZZ",long,read,write)
|
||||
#endif
|
||||
#endif /* _MSC_VER */
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
#define _CRTALLOC(x) __declspec(allocate(x))
|
||||
#elif defined(__GNUC__)
|
||||
#define _CRTALLOC(x) __attribute__ ((section (x) ))
|
||||
#else
|
||||
#error
|
||||
#error Your compiler is not supported.
|
||||
#endif
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
#define _WIN32_IE 0x0501
|
||||
#endif
|
||||
|
||||
#include_next <commctrl.h>
|
||||
#include <psdk/commctrl.h>
|
||||
|
||||
#undef DPA_GetPtr
|
||||
LPVOID WINAPI DPA_GetPtr(HDPA, INT);
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
|
||||
#include_next <compstui.h>
|
||||
#include <psdk/compstui.h>
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
|
||||
#include_next <winddiui.h>
|
||||
#include <psdk/winddiui.h>
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
|
||||
#include_next <winsplp.h>
|
||||
#include <psdk/winsplp.h>
|
||||
|
|
10
lib/3rdparty/mingw/CRT_fp10.c
vendored
10
lib/3rdparty/mingw/CRT_fp10.c
vendored
|
@ -9,14 +9,16 @@ void _fpreset (void);
|
|||
void _fpreset (void)
|
||||
{
|
||||
#ifdef __GNUC__
|
||||
__asm__ ("fninit" );
|
||||
#else
|
||||
__asm fninit;
|
||||
__asm__ ("fninit");
|
||||
#else /* msvc: */
|
||||
__asm fninit;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef __GNUC__
|
||||
void __attribute__ ((alias ("_fpreset"))) fpreset(void);
|
||||
#else
|
||||
void fpreset(void) { _fpreset(); }
|
||||
void fpreset(void) {
|
||||
_fpreset();
|
||||
}
|
||||
#endif
|
||||
|
|
4
lib/3rdparty/mingw/CRT_fp8.c
vendored
4
lib/3rdparty/mingw/CRT_fp8.c
vendored
|
@ -17,5 +17,7 @@ void _fpreset (void)
|
|||
#ifdef __GNUC__
|
||||
void __attribute__ ((alias ("_fpreset"))) fpreset(void);
|
||||
#else
|
||||
void fpreset(void) { _fpreset(); }
|
||||
void fpreset(void) {
|
||||
_fpreset();
|
||||
}
|
||||
#endif
|
||||
|
|
5
lib/3rdparty/mingw/crtexe.c
vendored
5
lib/3rdparty/mingw/crtexe.c
vendored
|
@ -20,6 +20,7 @@
|
|||
#include <tchar.h>
|
||||
#include <sect_attribs.h>
|
||||
#include <locale.h>
|
||||
#include <intrin.h>
|
||||
|
||||
#ifndef __winitenv
|
||||
extern wchar_t *** __MINGW_IMP_SYMBOL(__winitenv);
|
||||
|
@ -51,7 +52,11 @@ extern int * __MINGW_IMP_SYMBOL(_commode);
|
|||
#define _commode (* __MINGW_IMP_SYMBOL(_commode))
|
||||
extern int _dowildcard;
|
||||
|
||||
#if defined(__GNUC__)
|
||||
int _MINGW_INSTALL_DEBUG_MATHERR __attribute__((weak)) = 0;
|
||||
#else
|
||||
int _MINGW_INSTALL_DEBUG_MATHERR = 0;
|
||||
#endif
|
||||
extern int __defaultmatherr;
|
||||
extern _CRTIMP void __cdecl _initterm(_PVFV *, _PVFV *);
|
||||
|
||||
|
|
33
lib/3rdparty/mingw/gs_support.c
vendored
33
lib/3rdparty/mingw/gs_support.c
vendored
|
@ -88,19 +88,25 @@ __security_init_cookie (void)
|
|||
__security_cookie_complement = ~cookie;
|
||||
}
|
||||
|
||||
|
||||
#if defined(__GNUC__) /* wrap msvc intrinsics onto gcc builtins */
|
||||
#undef _ReturnAddress
|
||||
#undef _AddressOfReturnAddress
|
||||
#define _ReturnAddress() __builtin_return_address(0)
|
||||
#define _AddressOfReturnAddress() __builtin_frame_address (0)
|
||||
#endif /* __GNUC__ */
|
||||
|
||||
__declspec(noreturn) void __cdecl __report_gsfailure (ULONGLONG);
|
||||
|
||||
__declspec(noreturn) void __cdecl
|
||||
__report_gsfailure (ULONGLONG StackCookie)
|
||||
{
|
||||
volatile UINT_PTR cookie[2];
|
||||
volatile UINT_PTR __UNUSED_PARAM(cookie[2]);
|
||||
#ifdef _WIN64
|
||||
ULONG64 controlPC, imgBase, establisherFrame;
|
||||
PRUNTIME_FUNCTION fctEntry;
|
||||
PVOID hndData;
|
||||
#endif
|
||||
|
||||
#ifdef _WIN64
|
||||
RtlCaptureContext (&GS_ContextRecord);
|
||||
controlPC = GS_ContextRecord.Rip;
|
||||
fctEntry = RtlLookupFunctionEntry (controlPC, &imgBase, NULL);
|
||||
|
@ -110,25 +116,15 @@ __report_gsfailure (ULONGLONG StackCookie)
|
|||
&GS_ContextRecord, &hndData, &establisherFrame, NULL);
|
||||
}
|
||||
else
|
||||
#endif
|
||||
#endif /* _WIN64 */
|
||||
{
|
||||
#ifdef __GNUC__
|
||||
#ifdef _WIN64
|
||||
GS_ContextRecord.Rip = (ULONGLONG) __builtin_return_address (0);
|
||||
GS_ContextRecord.Rsp = (ULONGLONG) __builtin_frame_address (0) + 8;
|
||||
#else
|
||||
GS_ContextRecord.Eip = (DWORD) __builtin_return_address (0);
|
||||
GS_ContextRecord.Esp = (DWORD) __builtin_frame_address (0) + 4;
|
||||
#endif
|
||||
#else
|
||||
#ifdef _WIN64
|
||||
GS_ContextRecord.Rip = (ULONGLONG) _ReturnAddress();
|
||||
GS_ContextRecord.Rsp = (ULONGLONG) _AddressOfReturnAddress();
|
||||
GS_ContextRecord.Rsp = (ULONGLONG) _AddressOfReturnAddress() + 8;
|
||||
#else
|
||||
GS_ContextRecord.Eip = (DWORD) _ReturnAddress();
|
||||
GS_ContextRecord.Esp = (DWORD) _AddressOfReturnAddress();
|
||||
#endif
|
||||
#endif
|
||||
GS_ContextRecord.Esp = (DWORD) _AddressOfReturnAddress() + 4;
|
||||
#endif /* _WIN64 */
|
||||
}
|
||||
|
||||
#ifdef _WIN64
|
||||
|
@ -137,7 +133,7 @@ __report_gsfailure (ULONGLONG StackCookie)
|
|||
#else
|
||||
GS_ExceptionRecord.ExceptionAddress = (PVOID) GS_ContextRecord.Eip;
|
||||
GS_ContextRecord.Ecx = StackCookie;
|
||||
#endif
|
||||
#endif /* _WIN64 */
|
||||
GS_ExceptionRecord.ExceptionCode = STATUS_STACK_BUFFER_OVERRUN;
|
||||
GS_ExceptionRecord.ExceptionFlags = EXCEPTION_NONCONTINUABLE;
|
||||
cookie[0] = __security_cookie;
|
||||
|
@ -147,3 +143,4 @@ __report_gsfailure (ULONGLONG StackCookie)
|
|||
TerminateProcess (GetCurrentProcess (), STATUS_STACK_BUFFER_OVERRUN);
|
||||
abort();
|
||||
}
|
||||
|
||||
|
|
19
lib/3rdparty/mingw/tlssup.c
vendored
19
lib/3rdparty/mingw/tlssup.c
vendored
|
@ -10,20 +10,25 @@
|
|||
#undef CRTDLL
|
||||
#endif
|
||||
|
||||
#include <sect_attribs.h>
|
||||
|
||||
#ifndef WIN32_LEAN_AND_MEAN
|
||||
#define WIN32_LEAN_AND_MEAN
|
||||
#endif
|
||||
#include <windows.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <memory.h>
|
||||
#include <malloc.h>
|
||||
|
||||
#ifndef _CRTALLOC
|
||||
#define _CRTALLOC(x) __attribute__ ((section (x) ))
|
||||
#ifndef _WIN64
|
||||
#include <stdlib.h> /* for _winmajor */
|
||||
#endif
|
||||
|
||||
#ifndef __INTERNAL_FUNC_DEFINED
|
||||
#define __INTERNAL_FUNC_DEFINED
|
||||
typedef void (__cdecl *_PVFV)(void);
|
||||
typedef int (__cdecl *_PIFV)(void);
|
||||
typedef void (__cdecl *_PVFI)(int);
|
||||
typedef void (__cdecl *_PVFV)(void);
|
||||
typedef int (__cdecl *_PIFV)(void);
|
||||
typedef void (__cdecl *_PVFI)(int);
|
||||
#endif
|
||||
|
||||
extern WINBOOL __mingw_TLScallback (HANDLE hDllHandle, DWORD reason, LPVOID reserved);
|
||||
|
@ -209,5 +214,5 @@ _CRTALLOC(".CRT$XLD") PIMAGE_TLS_CALLBACK __xl_d = (PIMAGE_TLS_CALLBACK) __dyn_t
|
|||
|
||||
|
||||
int mingw_initltsdrot_force = 0;
|
||||
int mingw_initltsdyn_force=0;
|
||||
int mingw_initltsdyn_force = 0;
|
||||
int mingw_initltssuo_force = 0;
|
||||
|
|
174
ntoskrnl/ntoskrnl_amd64.lnk
Normal file
174
ntoskrnl/ntoskrnl_amd64.lnk
Normal file
|
@ -0,0 +1,174 @@
|
|||
OUTPUT_FORMAT(pei-x86-64)
|
||||
ENTRY(_mainCRTStartup)
|
||||
SECTIONS
|
||||
{
|
||||
.text __image_base__ + __section_alignment__ :
|
||||
{
|
||||
__text_start__ = .;
|
||||
*(.init)
|
||||
*(.text)
|
||||
*(SORT(.text$*))
|
||||
*(.glue_7t)
|
||||
*(.glue_7)
|
||||
___CTOR_LIST__ = .; __CTOR_LIST__ = . ;
|
||||
LONG (-1); *(.ctors); *(.ctor); LONG (0);
|
||||
___DTOR_LIST__ = .; __DTOR_LIST__ = . ;
|
||||
LONG (-1); *(.dtors); *(.dtor); LONG (0);
|
||||
*(.fini)
|
||||
/* ??? Why is .gcc_exc here? */
|
||||
*(.gcc_exc)
|
||||
__text_end__ = .;
|
||||
*(.gcc_except_table)
|
||||
}
|
||||
init BLOCK(__section_alignment__) :
|
||||
{
|
||||
__init_start__ = . ;
|
||||
*(init)
|
||||
__init_end__ = . ;
|
||||
}
|
||||
/* The Cygwin32 library uses a section to avoid copying certain data
|
||||
on fork. This used to be named ".data". The linker used
|
||||
to include this between __data_start__ and __data_end__, but that
|
||||
breaks building the cygwin32 dll. Instead, we name the section
|
||||
".data_cygwin_nocopy" and explictly include it after __data_end__. */
|
||||
.data BLOCK(__section_alignment__) :
|
||||
{
|
||||
__data_start__ = . ;
|
||||
*(.data)
|
||||
*(.data2)
|
||||
*(SORT(.data$*))
|
||||
__data_end__ = . ;
|
||||
*(.data_cygwin_nocopy)
|
||||
}
|
||||
.rdata BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.rdata)
|
||||
*(SORT(.rdata$*))
|
||||
/* For some reason mingw likes to merge it here. I don't! */
|
||||
/* *(.eh_frame) */
|
||||
}
|
||||
.edata BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.edata)
|
||||
}
|
||||
/DISCARD/ :
|
||||
{
|
||||
*(.debug$S)
|
||||
*(.debug$T)
|
||||
*(.debug$F)
|
||||
*(.drectve)
|
||||
}
|
||||
|
||||
.idata BLOCK(__section_alignment__) :
|
||||
{
|
||||
/* This cannot currently be handled with grouped sections.
|
||||
See pe.em:sort_sections. */
|
||||
SORT(*)(.idata$2)
|
||||
SORT(*)(.idata$3)
|
||||
/* These zeroes mark the end of the import list. */
|
||||
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
|
||||
SORT(*)(.idata$4)
|
||||
SORT(*)(.idata$5)
|
||||
SORT(*)(.idata$6)
|
||||
SORT(*)(.idata$7)
|
||||
}
|
||||
.CRT BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(SORT(.CRT$*))
|
||||
}
|
||||
.rsrc BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.rsrc)
|
||||
*(SORT(.rsrc$*))
|
||||
}
|
||||
.bss BLOCK(__section_alignment__) :
|
||||
{
|
||||
__bss_start__ = . ;
|
||||
*(.bss)
|
||||
*(COMMON)
|
||||
__bss_end__ = . ;
|
||||
}
|
||||
.reloc BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.reloc)
|
||||
/* These zeroes mark the end of the reloc section. */
|
||||
LONG (0); LONG (0); LONG (0); LONG (0); LONG (0);
|
||||
}
|
||||
.stab BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
[ .stab ]
|
||||
}
|
||||
.stabstr BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
[ .stabstr ]
|
||||
}
|
||||
/* DWARF debug sections.
|
||||
Symbols in the DWARF debugging sections are relative to the beginning
|
||||
of the section. Unlike other targets that fake this by putting the
|
||||
section VMA at 0, the PE format will not allow it. */
|
||||
/* DWARF 1.1 and DWARF 2. */
|
||||
.debug_aranges BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_aranges)
|
||||
}
|
||||
.debug_pubnames BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_pubnames)
|
||||
}
|
||||
/* DWARF 2. */
|
||||
.debug_info BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_info) *(.gnu.linkonce.wi.*)
|
||||
}
|
||||
.debug_abbrev BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_abbrev)
|
||||
}
|
||||
.debug_line BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_line)
|
||||
}
|
||||
.debug_frame BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_frame)
|
||||
}
|
||||
.debug_str BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_str)
|
||||
}
|
||||
.debug_loc BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_loc)
|
||||
}
|
||||
.debug_macinfo BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_macinfo)
|
||||
}
|
||||
/* SGI/MIPS DWARF 2 extensions. */
|
||||
.debug_weaknames BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_weaknames)
|
||||
}
|
||||
.debug_funcnames BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_funcnames)
|
||||
}
|
||||
.debug_typenames BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_typenames)
|
||||
}
|
||||
.debug_varnames BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_varnames)
|
||||
}
|
||||
/* DWARF 3. */
|
||||
.debug_ranges BLOCK(__section_alignment__) (NOLOAD) :
|
||||
{
|
||||
*(.debug_ranges)
|
||||
}
|
||||
.eh_frame BLOCK(__section_alignment__) :
|
||||
{
|
||||
*(.eh_frame)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in a new issue