sysinit*.pp: Factored common code into include file.

git-svn-id: trunk@17939 -
This commit is contained in:
sergei 2011-07-05 13:25:51 +00:00
parent 138c2b6b0a
commit 59ac157b50
5 changed files with 46 additions and 83 deletions

1
.gitattributes vendored
View File

@ -8167,6 +8167,7 @@ rtl/win32/gprt0.as svneol=native#text/plain
rtl/win32/initc.pp svneol=native#text/plain
rtl/win32/objinc.inc svneol=native#text/plain
rtl/win32/signals.pp svneol=native#text/plain
rtl/win32/sysinit.inc svneol=native#text/plain
rtl/win32/sysinitcyg.pp svneol=native#text/plain
rtl/win32/sysinitgprof.pp svneol=native#text/plain
rtl/win32/sysinitpas.pp svneol=native#text/plain

42
rtl/win32/sysinit.inc Normal file
View File

@ -0,0 +1,42 @@
{
This file is part of the Free Pascal run time library.
Copyright (c) 1999-2006 by Florian Klaempfl and Pavel Ozerski
member of the Free Pascal development team.
Win32 startup code, shared part
See the file COPYING.FPC, included in this distribution,
for details about the copyright.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
**********************************************************************}
var
SysInstance : Longint;external name '_FPC_SysInstance';
EntryInformation : TEntryInformation;
InitFinalTable : record end; external name 'INITFINAL';
ThreadvarTablesTable : record end; external name 'FPC_THREADVARTABLES';
valgrind_used : boolean;external name '__fpc_valgrind';
procedure EXE_Entry(const info : TEntryInformation); external name '_FPC_EXE_Entry';
function DLL_Entry(const info : TEntryInformation) : longbool; external name '_FPC_DLL_Entry';
procedure PascalMain;stdcall;external name 'PASCALMAIN';
function GetStdHandle(nStdHandle:DWORD) : THandle; stdcall; external 'kernel32' name 'GetStdHandle';
function GetConsoleMode(hConsoleHandle: THandle; var lpMode: DWORD): Boolean; stdcall; external 'kernel32' name 'GetConsoleMode';
const
STD_INPUT_HANDLE = dword(-10);
procedure SetupEntryInformation;
begin
EntryInformation.InitFinalTable:=@InitFinalTable;
EntryInformation.ThreadvarTablesTable:=@ThreadvarTablesTable;
EntryInformation.asm_exit:=@asm_exit;
EntryInformation.PascalMain:=@PascalMain;
EntryInformation.valgrind_used:=valgrind_used;
end;

View File

@ -20,42 +20,14 @@ unit sysinitcyg;
implementation
var
SysInstance : Longint;external name '_FPC_SysInstance';
EntryInformation : TEntryInformation;
InitFinalTable : record end; external name 'INITFINAL';
ThreadvarTablesTable : record end; external name 'FPC_THREADVARTABLES';
valgrind_used : boolean;external name '__fpc_valgrind';
procedure EXE_Entry; external name '_FPC_EXE_Entry';
function DLL_Entry : longbool; external name '_FPC_DLL_Entry';
procedure Cygwin_crt0(p : pointer);cdecl;external name 'cygwin_crt0';
procedure __main;cdecl;external name '__main';
const
STD_INPUT_HANDLE = dword(-10);
function GetStdHandle(nStdHandle:DWORD) : THandle; stdcall; external 'kernel32' name 'GetStdHandle';
function GetConsoleMode(hConsoleHandle: THandle; var lpMode: DWORD): Boolean; stdcall; external 'kernel32' name 'GetConsoleMode';
procedure EXE_Entry(const info : TEntryInformation); external name '_FPC_EXE_Entry';
function DLL_entry(const info : TEntryInformation) : longbool; external name '_FPC_DLL_Entry';
procedure PascalMain;stdcall;external name 'PASCALMAIN';
procedure asm_exit;stdcall;public name 'asm_exit';
begin
end;
procedure SetupEntryInformation;
begin
EntryInformation.InitFinalTable:=@InitFinalTable;
EntryInformation.ThreadvarTablesTable:=@ThreadvarTablesTable;
EntryInformation.asm_exit:=@asm_exit;
EntryInformation.PascalMain:=@PascalMain;
EntryInformation.valgrind_used:=valgrind_used;
end;
{$i sysinit.inc}
procedure CMainEXE;cdecl;

View File

@ -24,18 +24,9 @@ unit sysinitgprof;
monstarted : dword = 0;
var
SysInstance : Longint;external name '_FPC_SysInstance';
EntryInformation : TEntryInformation;
InitFinalTable : record end; external name 'INITFINAL';
ThreadvarTablesTable : record end; external name 'FPC_THREADVARTABLES';
valgrind_used : boolean;external name '__fpc_valgrind';
stext : record end;external name '__text_start__';
etext : record end;external name 'etext';
procedure EXE_Entry; external name '_FPC_EXE_Entry';
function DLL_Entry : longbool; external name '_FPC_DLL_Entry';
procedure Cygwin_crt0(p : pointer);cdecl;external name 'cygwin_crt0';
procedure __main;cdecl;external name '__main';
procedure _mcleanup;cdecl;external name '_mcleanup';
@ -45,31 +36,12 @@ unit sysinitgprof;
procedure CMainEXE;cdecl;forward;
procedure CMainDLL;cdecl;forward;
const
STD_INPUT_HANDLE = dword(-10);
function GetStdHandle(nStdHandle:DWORD) : THandle; stdcall; external 'kernel32' name 'GetStdHandle';
function GetConsoleMode(hConsoleHandle: THandle; var lpMode: DWORD): Boolean; stdcall; external 'kernel32' name 'GetConsoleMode';
procedure EXE_Entry(const info : TEntryInformation); external name '_FPC_EXE_Entry';
function DLL_entry(const info : TEntryInformation) : longbool; external name '_FPC_DLL_Entry';
procedure PascalMain;stdcall;external name 'PASCALMAIN';
procedure asm_exit;stdcall;public name 'asm_exit';
begin
_mcleanup;
end;
procedure SetupEntryInformation;
begin
EntryInformation.InitFinalTable:=@InitFinalTable;
EntryInformation.ThreadvarTablesTable:=@ThreadvarTablesTable;
EntryInformation.asm_exit:=@asm_exit;
EntryInformation.PascalMain:=@PascalMain;
EntryInformation.valgrind_used:=valgrind_used;
end;
{$i sysinit.inc}
procedure EXEgmon_start;
begin

View File

@ -19,36 +19,12 @@ unit sysinitpas;
implementation
var
SysInstance : Longint;external name '_FPC_SysInstance';
EntryInformation : TEntryInformation;
InitFinalTable : record end; external name 'INITFINAL';
ThreadvarTablesTable : record end; external name 'FPC_THREADVARTABLES';
valgrind_used : boolean;external name '__fpc_valgrind';
procedure asm_exit;stdcall;public name 'asm_exit';
begin
end;
procedure EXE_Entry(const info : TEntryInformation); external name '_FPC_EXE_Entry';
function DLL_entry(const info : TEntryInformation) : longbool; external name '_FPC_DLL_Entry';
procedure PascalMain;stdcall;external name 'PASCALMAIN';
procedure SetupEntryInformation;
begin
EntryInformation.InitFinalTable:=@InitFinalTable;
EntryInformation.ThreadvarTablesTable:=@ThreadvarTablesTable;
EntryInformation.asm_exit:=@asm_exit;
EntryInformation.PascalMain:=@PascalMain;
EntryInformation.valgrind_used:=valgrind_used;
end;
const
STD_INPUT_HANDLE = dword(-10);
function GetStdHandle(nStdHandle:DWORD) : THandle; stdcall; external 'kernel32' name 'GetStdHandle';
function GetConsoleMode(hConsoleHandle: THandle; var lpMode: DWORD): Boolean; stdcall; external 'kernel32' name 'GetConsoleMode';
{$i sysinit.inc}
procedure _FPC_mainCRTStartup;stdcall;public name '_mainCRTStartup';
begin