From 59ac157b508bccf12bc6ee54d2f2359b111246d1 Mon Sep 17 00:00:00 2001 From: sergei <gorelkin@nanoreflex.ru> Date: Tue, 5 Jul 2011 13:25:51 +0000 Subject: [PATCH] sysinit*.pp: Factored common code into include file. git-svn-id: trunk@17939 - --- .gitattributes | 1 + rtl/win32/sysinit.inc | 42 +++++++++++++++++++++++++++++++++++++++ rtl/win32/sysinitcyg.pp | 30 +--------------------------- rtl/win32/sysinitgprof.pp | 30 +--------------------------- rtl/win32/sysinitpas.pp | 26 +----------------------- 5 files changed, 46 insertions(+), 83 deletions(-) create mode 100644 rtl/win32/sysinit.inc diff --git a/.gitattributes b/.gitattributes index 1da177706e..3164a69efc 100644 --- a/.gitattributes +++ b/.gitattributes @@ -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 diff --git a/rtl/win32/sysinit.inc b/rtl/win32/sysinit.inc new file mode 100644 index 0000000000..4c3118b7a5 --- /dev/null +++ b/rtl/win32/sysinit.inc @@ -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; diff --git a/rtl/win32/sysinitcyg.pp b/rtl/win32/sysinitcyg.pp index 6b81ebe074..1d4b11632d 100644 --- a/rtl/win32/sysinitcyg.pp +++ b/rtl/win32/sysinitcyg.pp @@ -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; diff --git a/rtl/win32/sysinitgprof.pp b/rtl/win32/sysinitgprof.pp index d049ec6758..dca5f806e2 100644 --- a/rtl/win32/sysinitgprof.pp +++ b/rtl/win32/sysinitgprof.pp @@ -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 diff --git a/rtl/win32/sysinitpas.pp b/rtl/win32/sysinitpas.pp index 874e8d771e..91f7ba75b3 100644 --- a/rtl/win32/sysinitpas.pp +++ b/rtl/win32/sysinitpas.pp @@ -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