Commit Graph

551 Commits

Author SHA1 Message Date
Tomas Hajny
b7de70422f * fix for bug #24504 (extended version of patch by Bart Broersma)
git-svn-id: trunk@34849 -
2016-11-08 22:16:49 +00:00
svenbarth
f8b458106e * fix for Mantis #30747: for anonymous events CreateEvent() needs to be called with a Nil parameter for the name, not an empty string
git-svn-id: trunk@34736 -
2016-10-16 19:29:49 +00:00
Jonas Maebe
e5a1231931 * updated FSF address (mantis #30198, patch by Paul Gevers)
git-svn-id: trunk@34598 -
2016-10-02 12:56:59 +00:00
marco
fe99472d22 * fix missing 'kernel32' reported on forum by "DG"
git-svn-id: trunk@34571 -
2016-09-28 14:24:53 +00:00
svenbarth
2808be3e20 + add and use sysinit unit for Win64 (only one since we don't support cygwin and gprof there)
* switch Win64 to indirect entry information

git-svn-id: trunk@34307 -
2016-08-13 19:10:27 +00:00
yury
e3ebaa6e6a * Remove trailing #13#10 in the result of SysErrorMessage() on Windows and minor optimization. It is Delphi compatible.
git-svn-id: trunk@34220 -
2016-07-29 10:23:12 +00:00
pierre
7efce7f121 Rewrite CommandLine creation in Dos.Exec function to avoid problems when ComLine is 255 characters long
git-svn-id: trunk@34015 -
2016-06-21 10:13:41 +00:00
svenbarth
3f45860cf9 Use constref instead of const when passing TEntryInformation along
git-svn-id: trunk@33951 -
2016-06-11 20:45:47 +00:00
svenbarth
535621faaa Rename FPC_HAS_INDIRECT_MAIN_INFORMATION to FPC_HAS_INDIRECT_ENTRY_INFORMATION which is more logical considering the record's name
git-svn-id: trunk@33950 -
2016-06-11 20:38:22 +00:00
nickysn
bffe9480f4 + added the winapi functions, structures and constants for raw keyboard and mouse input
git-svn-id: trunk@33746 -
2016-05-22 01:59:27 +00:00
svenbarth
788393c298 Change WideString initialization to work correctly with indirect main information as well
rtl/inc/systemh.inc & rtl/java/jsystemh_types.inc:
  - TEntryInformation: remove WideInitTables
rtl/win/sysosh.inc:
  + TEntyrInformationOS: add WideInitTables
rtl/win/syswin.inc:
  * adjust WStrInitTablesTable, so that it is now a pointer and can be used both with direct and indirect main entry
  * InitWin32Widestrings: WStrInitTablesTable is now a pointer
rtl/win32/sysinit.inc:
  * WideInitTables has moved to the OS specific part of the entry information
rtl/win32/system.pp:
  * OsSetupEntryinformation: setup WStrInitTablesTable

git-svn-id: trunk@33571 -
2016-04-29 13:13:14 +00:00
Tomas Hajny
92d045c483 * GetStdHandle returns a THandle (use of longint was not 64-bit safe)
git-svn-id: trunk@33460 -
2016-04-10 01:26:30 +00:00
michael
ad34300873 * Patch from Denis Kozlov to fix buffer errors (bug ID 29942)
git-svn-id: trunk@33406 -
2016-04-02 09:13:56 +00:00
michael
e3aaeae2e7 * Fix bug ID #29913
git-svn-id: trunk@33363 -
2016-03-28 13:16:31 +00:00
michael
65c880a7f6 * Use STACK_SIZE_PARAM_IS_A_RESERVATION for stack sizes, should fix bug ID #17755
git-svn-id: trunk@33346 -
2016-03-27 11:12:47 +00:00
michael
12d7061212 * Define STACK_SIZE_PARAM_IS_A_RESERVATION
git-svn-id: trunk@33345 -
2016-03-27 11:11:54 +00:00
marco
66608fec02 * unicode executeprocess from work during Lazarus convention in IJsselstein
git-svn-id: trunk@33290 -
2016-03-19 17:59:42 +00:00
marco
3ca2c1553d * copyfileexw (mantis #29729)
git-svn-id: trunk@33227 -
2016-03-12 22:30:23 +00:00
marco
0bfdfe20ea * second batch of mantis #29762 related -w function fixes..
git-svn-id: trunk@33217 -
2016-03-11 15:52:08 +00:00
marco
5e8bc3a631 * mantis #29762 unicode structure problems fixed up to and including MessageBoxIndirectW
git-svn-id: trunk@33216 -
2016-03-11 12:07:36 +00:00
michael
c0487d7ef9 * Fix bug ID #29784
git-svn-id: trunk@33154 -
2016-03-05 15:00:40 +00:00
marco
1ae1e9310b * defined -A and -W structs and callback for a couple of functions Mantis #0029762
git-svn-id: trunk@33143 -
2016-03-02 13:46:37 +00:00
svenbarth
af53fcb48c Adjust SysInstance so that it is correctly handled with the indirect entry information on Win32
win/sysosh.inc, TEntryInformationOS:
  + new field SysInstance that will hold the address to the main program's SysInstance variable
win32/system.pp:
  * rename SysInstance to FPCSysInstance and make it a PLongInt
  * OsSetupEntryInformation: setup FPCSysInstance
  * adjust initialization of SysInstance to use FPCSysInstance instead
win32/sysinit.inc:
  * SysInstance is no longer an external
  * initialize the OS.SysInstance field of EntryInformation
win64/system.pp:
  * add a FPCSysInstance that's a pointer to SysInstance
win/winres.inc:
  * SysInstance is now a pointer and has the same name on both Win32 and Win64

git-svn-id: trunk@33107 -
2016-02-19 16:22:20 +00:00
svenbarth
6afda909d4 Rework TlsKey handling on Windows so that it works as intended with indirect main information
rtl/inc/system.inc:
  * SetupEntryInformation: call new, optional function OSSetupEntryInformation to handle platform specific entry information initialization
rtl/win/sysosh.inc, TEntryInformationOS:
  + new field TlsKeyAddr which will hold the address to the main binary's TlsKey variable
win32/sysinit.inc:
  + provide the variable holding the TlsKey and pass that on to the entry information record
win32/system.pp:
  + new OS specific entry information initialization (currently only the TlsKey)
win/systhrd.inc:
  * declare TlsKey as a pointer to a DWord value instead of a DWord; on non-indirect entry platforms this is initialized with the address of new variable TlsKeyVar, on indirect entry platforms it will be initialized by the entry information initialization
  * adjust usages of TlsKey from DWord to PDWord
win/systlsdir.inc:
  * TlsKey is now a PDWord and (in sysinit) points to TlsKeyVar
win/syswin.inc:
  * adjust TlsKey usage
inc/heaptrc.pp:
  * TlsKey is now a PDWord, thus adjust the import and the usage

git-svn-id: trunk@33091 -
2016-02-12 17:03:52 +00:00
svenbarth
1951b8aaaa Fix threadvar handling. Basically a merge of r31913 of my packages branch.
rtl/inc/system.inc:
  * provide a public alias for SetupEntryInformation so that it can be used in SysInit as well without globally exporting it
rtl/win/systlsdir.inc:
  * Exec_tls_callback: call SetupEntryInformation before initalizing the heap and multithreading so that the threadvar tables can be referenced correctly

git-svn-id: trunk@33035 -
2016-01-30 23:10:35 +00:00
svenbarth
e3060130a4 Adjustments so that the resource string related tables are provided inside the system unit (both for indirect and direct entry targets).
rtl/inc/system.inc:
  + new variables that hold pointers to the tables
  + new procedure SetupEntryInformation() that should be used in the entry points of indirect entry targets to setup cross target fields
  + for direct entry targets the two resource string tables are imported here and supplied as initialization to the table pointers
objpas/objpas.pp:
  * adjust table declarations so that the pointers provided from the System unit are used
  * adjust usages of the tables as they are now pointers
win32/system.pp:
  * Exe_Entry: use SetupEntryInformation()
win/syswin.inc:
  * Dll_Entry: use SetupEntryInformation()

git-svn-id: trunk@33028 -
2016-01-29 17:19:33 +00:00
svenbarth
7e1e947b71 asm_exit is only needed on Win32 (Note: the removal of asm_exit from TEntryInformation in the previous commit should have been in this one -.- )
rtl/win32/sysosh.inc:
  + add TEntryInformationOS for Win32 which contains asm_exit
rtl/win32/system.pp:
  * EntryInformation: adjust initialization
  * system_exit: call the correct function variable
rtl/win32/sysinit.inc:
  * SysInitEntryInformation: adjust initialization
  * SetupEntryInformation: adjust commented setup of the function variable
rtl/java/jsystemh_types.inc:
  * adjust TEntryInformation for consistency reasons

git-svn-id: trunk@33025 -
2016-01-29 15:36:58 +00:00
michael
10e7570948 * Applied patch from Thaddy de Koning (Bug ID 29405)
git-svn-id: trunk@32946 -
2016-01-15 17:30:48 +00:00
florian
d4d4689914 * use FormatMessageW in SysErrorMessage, resolves issue #29197
git-svn-id: trunk@32835 -
2016-01-03 15:56:31 +00:00
Tomas Hajny
b48b758a23 * fix for bug #29158 - added definition of REMOTE_NAME_INFOW (and REMOTE_NAME_INFOA), the W version used in ExpandUNCFileName now
git-svn-id: trunk@32692 -
2015-12-21 02:05:13 +00:00
marco
ffff774ff2 * fixes by lks of base.inc procptr types (one long->plong, three dword_ptr to ulong_ptr) fixes mantis #29023
git-svn-id: trunk@32456 -
2015-11-22 11:04:37 +00:00
marco
700a22f420 * revert accidentally committed part of executeprocess patch
git-svn-id: trunk@32334 -
2015-11-15 18:47:42 +00:00
marco
92960ff3ac * initial advanced records support for TSize..TRect and -F.
git-svn-id: trunk@32333 -
2015-11-15 18:34:19 +00:00
michael
aa7058e82d * Patch from Ondrej Pokorny to fix broken compilation after 32275
git-svn-id: trunk@32278 -
2015-11-09 07:36:01 +00:00
michael
fde42ca8ef * Type helpers, compatible to Delphi XE 8
git-svn-id: trunk@32262 -
2015-11-07 09:40:54 +00:00
marco
c402bffc69 * part of mantis 028134, cleanup of NORM_ constants
git-svn-id: trunk@30918 -
2015-05-26 17:44:09 +00:00
marco
076e43f799 * try to beautify image_delayload_descriptor a bit. But a 1:1 structure
is not possible I think (unless we forfeit the bitpack alternative)

git-svn-id: trunk@30279 -
2015-03-22 19:54:53 +00:00
marco
57212decc8 * ugly auto conversion IMAGE_IMPORT_DESCRIPTOR and _IMAGE_TLS_DIRECTORY64/32 fixed.
* IMAGE_EXPORT_DIRECTORY

(see comments mantis #27674 )

git-svn-id: trunk@30264 -
2015-03-20 14:01:28 +00:00
marco
882d42eb86 * change image_* macros to unsigned, half of bug #27674
git-svn-id: trunk@30256 -
2015-03-17 22:30:31 +00:00
marco
f79a8c1544 * IMAGE_FIRST_SECTION
git-svn-id: trunk@30185 -
2015-03-14 11:16:12 +00:00
marco
698a068da7 * Missing symbols from mantis #27657 except macro IMAGE_FIRST_SECTION
git-svn-id: trunk@30182 -
2015-03-13 20:08:29 +00:00
Tomas Hajny
dff7cb3c3c * added missing error constant
git-svn-id: trunk@29808 -
2015-02-23 11:19:50 +00:00
Tomas Hajny
b9f88aa80c * mapping of I/O error number 206 having different meaning in FPC to RTE 3
git-svn-id: trunk@29797 -
2015-02-22 22:25:44 +00:00
marco
8e2f8d7f3c * for wince use getprocessaddresa, mantis #27450
git-svn-id: trunk@29684 -
2015-02-13 10:23:05 +00:00
svenbarth
2d454dc8fa Move DynLibs support to System unit using a manager approach like for Threads, WideStrings, etc.. This is needed so that we can support features like "delayed" and loading of dynamic packages.
Each port that allows the usage of dynamic libraries should call InitSystemDynLibs during initialization of the System unit.
The DynLibs unit has been adjusted to be a forwarder for the functions that now reside in the System unit (for backwards compatiblity just in case). Additionally the unit will register the DynLibsManager if it doesn't reside in the System unit anyway.
Currently only the Windows targets (Win32, Win64 and WinCE) implement the DynLibsManager inside the System unit. For other systems using the LoadLibrary, etc. functions will lead to a run error/exception.
If a port wants to implement its own DynLibsManager then it needs to define DISABLE_NO_DYNLIBS_MANAGER. TLibHandle, NilHandle and optionally TOrdinalEntry (it's set to SizeUInt otherwise) should be defined in sysdlh.inc which needs to be enabled using the define FPC_SYSTEM_HAS_SYSDLH (because there are targets which have FEATURE_DYNLIBS enabled, but don't support them... e.g. powerpc-wii -.-).
The DynLibsManager contains methods for loading a library based on a RawByteString and based on a UnicodeString. BOTH should be implemented, but internally one can forward to the other.
The loading by ordinal *can* be be implemented. If it is set to Nil then the implementation of GetProcAddress(lib,ordinal) will return Nil.

+ new functions SetDynLibsManager and GetDynLibsManager to set and retrieve the current DynLibsManager
* provide interface of DynLibs unit in unit System

git-svn-id: trunk@29613 -
2015-02-03 20:00:00 +00:00
marco
43121ed5e1 * Fix for #27228
git-svn-id: trunk@29365 -
2015-01-01 00:27:18 +00:00
pierre
7bbb30ccd4 * Reset filerec mode field to fmClosed if the system call to open the file failed
git-svn-id: trunk@29132 -
2014-11-23 21:49:29 +00:00
pierre
90537e94a0 Call Errno2noutres if system call to close the handle fails in do_close for win and unix
git-svn-id: trunk@29095 -
2014-11-20 22:00:35 +00:00
pierre
260c6583cf Only set StdInputHandle, StdOutputHandle and StdErrorHandle once
git-svn-id: trunk@29094 -
2014-11-20 21:57:15 +00:00
marco
3fbcca0e77 * change ulargeinteger quadpart to unsinged, mantis #27023
git-svn-id: trunk@29059 -
2014-11-11 08:30:14 +00:00