Browse Source

--- Merging r15089 into '.':
U rtl/win/wininc/defines.inc
--- Merging r15095 into '.':
U tests/webtbs/tw2377.pp
U tests/tbs/tb0523.pp
--- Merging r15098 into '.':
U rtl/beos/system.pp
U rtl/haiku/system.pp
--- Merging r15102 into '.':
U rtl/haiku/unxsockh.inc
--- Merging r15104 into '.':
U rtl/unix/sockets.pp
--- Merging r15117 into '.':
U rtl/inc/resh.inc
--- Merging r15118 into '.':
U packages/winunits-base/src/imagehlp.pp
--- Merging r15119 into '.':
G packages/winunits-base/src/imagehlp.pp
--- Merging r15120 into '.':
U packages/winunits-base/src/activex.pp
--- Merging r15125 into '.':
G packages/winunits-base/src/imagehlp.pp

# revisions: 15089,15095,15098,15102,15104,15117,15118,15119,15120,15125
------------------------------------------------------------------------
r15089 | marco | 2010-03-29 13:25:26 +0200 (Mon, 29 Mar 2010) | 2 lines
Changed paths:
M /trunk/rtl/win/wininc/defines.inc

* later SM_ constants for getmetrics mantis 16138

------------------------------------------------------------------------
------------------------------------------------------------------------
r15095 | marco | 2010-03-30 11:58:25 +0200 (Tue, 30 Mar 2010) | 2 lines
Changed paths:
M /trunk/tests/tbs/tb0523.pp
M /trunk/tests/webtbs/tw2377.pp

* Patch from Oliver that corrects some % directives in the testsuite. Mantis 16134

------------------------------------------------------------------------
------------------------------------------------------------------------
r15098 | olivier | 2010-03-30 22:06:52 +0200 (Tue, 30 Mar 2010) | 2 lines
Changed paths:
M /trunk/rtl/beos/system.pp
M /trunk/rtl/haiku/system.pp

- Remove unnecessary call to SysInitStdIO probably added here by me for debugging purpose long time ago. The right one is a few line below.

------------------------------------------------------------------------
------------------------------------------------------------------------
r15102 | olivier | 2010-04-01 01:25:10 +0200 (Thu, 01 Apr 2010) | 2 lines
Changed paths:
M /trunk/rtl/haiku/unxsockh.inc

* Fixes all constant declarations according to sys/socket.h and netinet/in.h.

------------------------------------------------------------------------
------------------------------------------------------------------------
r15104 | marco | 2010-04-01 13:38:55 +0200 (Thu, 01 Apr 2010) | 2 lines
Changed paths:
M /trunk/rtl/unix/sockets.pp

* haiku also sinlen, Mantis 16176

------------------------------------------------------------------------
------------------------------------------------------------------------
r15117 | marco | 2010-04-08 11:03:50 +0200 (Thu, 08 Apr 2010) | 1 line
Changed paths:
M /trunk/rtl/inc/resh.inc

* fix for Mantis 16195, Delphi compatibility resource handle types were not 64-bit proof.
------------------------------------------------------------------------
------------------------------------------------------------------------
r15118 | marco | 2010-04-08 14:01:13 +0200 (Thu, 08 Apr 2010) | 2 lines
Changed paths:
M /trunk/packages/winunits-base/src/imagehlp.pp

* turn on imagehlp64 for win64

------------------------------------------------------------------------
------------------------------------------------------------------------
r15119 | marco | 2010-04-08 19:56:35 +0200 (Thu, 08 Apr 2010) | 3 lines
Changed paths:
M /trunk/packages/winunits-base/src/imagehlp.pp

* fix for mantis 16218, packrecords 8 in imagehlp (#pragma pack(8) in msvc)
and removal of the "packed" modifiers of record declarations

------------------------------------------------------------------------
------------------------------------------------------------------------
r15120 | marco | 2010-04-09 16:20:57 +0200 (Fri, 09 Apr 2010) | 2 lines
Changed paths:
M /trunk/packages/winunits-base/src/activex.pp

* IPersist method now OUT

------------------------------------------------------------------------
------------------------------------------------------------------------
r15125 | marco | 2010-04-10 14:46:11 +0200 (Sat, 10 Apr 2010) | 3 lines
Changed paths:
M /trunk/packages/winunits-base/src/imagehlp.pp

* patch from Dimitri B. that fixes 64-bit aspects of imagehlp.pp, caused by enabling previously dead code. Mantis 16240


------------------------------------------------------------------------

git-svn-id: branches/fixes_2_4@15126 -

marco 15 years ago
parent
commit
edc981607d

+ 1 - 1
packages/winunits-base/src/activex.pp

@@ -2113,7 +2113,7 @@ TYPE
 
     IPersist = Interface (IUnknown)
        ['{0000010c-0000-0000-C000-000000000046}']
-       Function GetClassId(clsid:TClsId):HResult; StdCall;
+       Function GetClassId(out clsid:TClsId):HResult; StdCall;
        End;
 
     IPersistStream = Interface(IPersist)

+ 93 - 88
packages/winunits-base/src/imagehlp.pp

@@ -24,6 +24,11 @@ Interface
 
 Uses Windows;
 
+{$packrecords 8}
+{$ifdef win64}
+ {$define imagehlp64}
+{$endif}
+
 Const 
      IMAGE_SEPARATION    = 64*1024;  	
      DBHHEADER_DEBUGDIRS = $1;     
@@ -350,7 +355,7 @@ Type
   MINIDUMP_TYPE = _MINIDUMP_TYPE;
   TMINIDUMP_TYPE = _MINIDUMP_TYPE;
   
-  TLOADED_IMAGE = packed record
+  TLOADED_IMAGE = record
           ModuleName : PSTR;
           hFile : THANDLE;
           MappedAddress : PUCHAR;
@@ -373,7 +378,7 @@ Type
   PPLOADED_IMAGE = ^PLOADED_IMAGE;
 {$ifndef win64}  
   PIMAGE_DEBUG_INFORMATION = ^TIMAGE_DEBUG_INFORMATION;
-  TIMAGE_DEBUG_INFORMATION = packed record
+  TIMAGE_DEBUG_INFORMATION = record
           List : TLISTENTRY;
           ReservedSize : DWORD;
           ReservedMappedBase : POINTER;
@@ -409,7 +414,7 @@ Type
   IMAGE_DEBUG_INFORMATION = TIMAGE_DEBUG_INFORMATION;
 {$ENDIF}  
   PMODLOAD_DATA = ^TMODLOAD_DATA;
-  TMODLOAD_DATA = packed record
+  TMODLOAD_DATA = record
           ssize : DWORD;
           ssig  : DWORD;
           data  : POINTER;
@@ -417,7 +422,7 @@ Type
           flags : DWORD;
        end;
   MODLOAD_DATA	= TMODLOAD_DATA;
-  tagADDRESS64 = packed record
+  tagADDRESS64 = record
           Offset : dword64;
           Segment : word;
           Mode : TADDRESS_MODE;
@@ -426,11 +431,11 @@ Type
   PADDRESS64 = ^TADDRESS64;
   LPADDRESS64 = PADDRESS64;
   {$IFDEF IMAGEHLP64}
-    TADRESS=TADDRESS64;
-	PADRESS=PADDRESS64;
-	LPADRESS=PADDRESS64;
+    TADDRESS=TADDRESS64;
+	PADDRESS=PADDRESS64;
+	LPADDRESS=PADDRESS64;
   {$ELSE}
-    tagADDRESS = packed record
+    tagADDRESS = record
           Offset : dword;
           Segment : word;
           Mode : TADDRESS_MODE;
@@ -440,7 +445,7 @@ Type
     LPADDRESS = PADDRESS;
   {$ENDIF}
   PKDHELP64 = ^TKDHELP64;
-  TKDHELP64 = packed record          
+  TKDHELP64 = record          
           Thread : DWORD64;
           ThCallbackStack : DWORD;
           ThCallbackBStore : DWORD;
@@ -458,7 +463,7 @@ Type
     PKDHELP  = PKDHELP64;
   {$ELSE}
     PKDHELP = ^TKDHELP;
-    TKDHELP = packed record
+    TKDHELP = record
           Thread : DWORD;
           ThCallbackStack : DWORD;
           NextCallback : DWORD;
@@ -471,7 +476,7 @@ Type
        end;
     KDHELP = TKDHELP;     
   {$ENDIF}
-  tagSTACKFRAME64 = packed record
+  tagSTACKFRAME64 = record
           AddrPC : TADDRESS64;
           AddrReturn : TADDRESS64;
           AddrFrame : TADDRESS64;
@@ -488,12 +493,12 @@ Type
   PSTACKFRAME64 = ^TSTACKFRAME64;
   LPSTACKFRAME64= ^TSTACKFRAME64;  
   {$IFDEF IMAGEHLP64}
-    STACKFRAME   = STACKFRAME64;     
+    STACKFRAME   = TSTACKFRAME64;     
     LPSTACKFRAME = LPSTACKFRAME64;     
 	TSTACKFRAME  = TSTACKFRAME64;     
     PSTACKFRAME  = PSTACKFRAME64;     	
   {$ELSE}    
-    tagSTACKFRAME = packed record
+    tagSTACKFRAME = record
           AddrPC : TADDRESS;
           AddrReturn : TADDRESS;
           AddrFrame : TADDRESS;
@@ -512,7 +517,7 @@ Type
   {$ENDIF}
    PAPI_VERSION = ^TAPI_VERSION;
    LPAPI_VERSION= PAPI_VERSION;   
-   TAPI_VERSION = packed record
+   TAPI_VERSION = record
           MajorVersion : ushort;
           MinorVersion : ushort;
           Revision : ushort;
@@ -521,7 +526,7 @@ Type
    API_VERSION = TAPI_VERSION;
       
    PIMAGEHLP_SYMBOL64 = ^TIMAGEHLP_SYMBOL64;
-   TIMAGEHLP_SYMBOL64 = packed record
+   TIMAGEHLP_SYMBOL64 = record
           SizeOfStruct : dword;
           Address : dword64;
           Size : dword;
@@ -533,7 +538,7 @@ Type
    LPIMAGEHLP_SYMBOL64 = PIMAGEHLP_SYMBOL64;
    
    PIMAGEHLP_SYMBOL64_PACKAGE = ^TIMAGEHLP_SYMBOL64_PACKAGE;
-   TIMAGEHLP_SYMBOL64_PACKAGE = packed record
+   TIMAGEHLP_SYMBOL64_PACKAGE = record
           sym : TIMAGEHLP_SYMBOL64;
           name : array[0..(MAX_SYM_NAME+1)-1] of TCHAR;
        end;
@@ -543,13 +548,13 @@ Type
    {$IFDEF IMAGEHLP64}
     IMAGEHLP_SYMBOL  = IMAGEHLP_SYMBOL64;
     TIMAGEHLP_SYMBOL = IMAGEHLP_SYMBOL64;
-    PIMAGEHLP_SYMBOL = PIMAGEHLP_SYMBOL64
-    TIMAGEHLP_SYMBOL_PACKAGE = IMAGEHLP_SYMBOL64_PACKAGE	
-    IMAGEHLP_SYMBOL_PACKAGE = IMAGEHLP_SYMBOL64_PACKAGE
-    PIMAGEHLP_SYMBOL_PACKAGE= PIMAGEHLP_SYMBOL64_PACKAGE
+    PIMAGEHLP_SYMBOL = PIMAGEHLP_SYMBOL64;
+    TIMAGEHLP_SYMBOL_PACKAGE = IMAGEHLP_SYMBOL64_PACKAGE;	
+    IMAGEHLP_SYMBOL_PACKAGE = IMAGEHLP_SYMBOL64_PACKAGE;
+    PIMAGEHLP_SYMBOL_PACKAGE= PIMAGEHLP_SYMBOL64_PACKAGE;
    {$ELSE}
     PIMAGEHLP_SYMBOL = ^TIMAGEHLP_SYMBOL;
-    TIMAGEHLP_SYMBOL = packed record
+    TIMAGEHLP_SYMBOL = record
           SizeOfStruct : dword;
           Address : dword;
           Size : dword;
@@ -561,7 +566,7 @@ Type
     LPIMAGEHLP_SYMBOL = PIMAGEHLP_SYMBOL;
 
     PIMAGEHLP_SYMBOL_PACKAGE = ^TIMAGEHLP_SYMBOL_PACKAGE;
-    TIMAGEHLP_SYMBOL_PACKAGE = packed record
+    TIMAGEHLP_SYMBOL_PACKAGE = record
           sym : TIMAGEHLP_SYMBOL;
           name : array[0..(MAX_SYM_NAME+1)-1] of TCHAR;
        end;
@@ -569,7 +574,7 @@ Type
     LPIMAGEHLP_SYMBOL_PACKAGE = PIMAGEHLP_SYMBOL_PACKAGE;
    {$ENDIF}
    PIMAGEHLP_MODULE64 = ^TIMAGEHLP_MODULE64;
-   TIMAGEHLP_MODULE64 = packed record
+   TIMAGEHLP_MODULE64 = record
           SizeOfStruct : dword;
           BaseOfImage : dword64;
           ImageSize : dword;
@@ -595,7 +600,7 @@ Type
    IMAGEHLP_MODULE64 = TIMAGEHLP_MODULE64;
      
    PIMAGEHLP_MODULE64W = ^TIMAGEHLP_MODULE64W;
-   TIMAGEHLP_MODULE64W = packed record
+   TIMAGEHLP_MODULE64W = record
           SizeOfStruct : dword;
           BaseOfImage : dword64;
           ImageSize : dword;
@@ -630,7 +635,7 @@ Type
    LPIMAGEHLP_MODULEW = PIMAGEHLP_MODULE64W;  
   {$ELSE}
    PIMAGEHLP_MODULE = ^TIMAGEHLP_MODULE;
-   TIMAGEHLP_MODULE = packed record
+   TIMAGEHLP_MODULE = record
           SizeOfStruct : dword;
           BaseOfImage : dword;
           ImageSize : dword;
@@ -646,7 +651,7 @@ Type
    LPIMAGEHLP_MODULE = PIMAGEHLP_MODULE;
    
    PIMAGEHLP_MODULEW = ^TIMAGEHLP_MODULEW;
-   TIMAGEHLP_MODULEW = packed record
+   TIMAGEHLP_MODULEW = record
           SizeOfStruct : dword;
           BaseOfImage : dword;
           ImageSize : dword;
@@ -663,7 +668,7 @@ Type
   {$ENDIF}
   
    PIMAGEHLP_LINE64 = ^TIMAGEHLP_LINE64;
-   TIMAGEHLP_LINE64 = packed record
+   TIMAGEHLP_LINE64 = record
           SizeOfStruct : dword;
           Key : pointer;
           LineNumber : dword;
@@ -680,7 +685,7 @@ Type
 	 LPIMAGEHLP_LINE = PIMAGEHLP_LINE64;     
 {$else}
      PIMAGEHLP_LINE = ^TIMAGEHLP_LINE;
-     TIMAGEHLP_LINE = packed record
+     TIMAGEHLP_LINE = record
           SizeOfStruct : dword;
           Key : pointer;
           LineNumber : dword;
@@ -692,13 +697,13 @@ Type
 {$endif}
   
   PSOURCEFILE = ^TSOURCEFILE;
-  TSOURCEFILE = packed record
+  TSOURCEFILE = record
           ModBase : dword64;
           FileName : pchar;
        end;  
   
   PIMAGEHLP_CBA_READ_MEMORY = ^TIMAGEHLP_CBA_READ_MEMORY;
-  TIMAGEHLP_CBA_READ_MEMORY = packed record
+  TIMAGEHLP_CBA_READ_MEMORY = record
           addr : dword64;
           buf : pointer;
           bytes : dword;
@@ -708,7 +713,7 @@ Type
   LPIMAGEHLP_CBA_READ_MEMORY = PIMAGEHLP_CBA_READ_MEMORY;
    
   PIMAGEHLP_CBA_EVENT = ^TIMAGEHLP_CBA_EVENT;
-  TIMAGEHLP_CBA_EVENT = packed record
+  TIMAGEHLP_CBA_EVENT = record
           severity : dword;
           code : dword;
           desc : pchar;
@@ -718,7 +723,7 @@ Type
   LPIMAGEHLP_CBA_EVENT = PIMAGEHLP_CBA_EVENT;
     
   PIMAGEHLP_DEFERRED_SYMBOL_LOAD64 = ^TIMAGEHLP_DEFERRED_SYMBOL_LOAD64;
-  TIMAGEHLP_DEFERRED_SYMBOL_LOAD64 = packed record
+  TIMAGEHLP_DEFERRED_SYMBOL_LOAD64 = record
           SizeOfStruct : dword;
           BaseOfImage : dword64;
           CheckSum : dword;
@@ -737,7 +742,7 @@ Type
   PIMAGEHLP_DEFERRED_SYMBOL_LOAD = PIMAGEHLP_DEFERRED_SYMBOL_LOAD64;     
 {$else}
   PIMAGEHLP_DEFERRED_SYMBOL_LOAD = ^TIMAGEHLP_DEFERRED_SYMBOL_LOAD;
-  TIMAGEHLP_DEFERRED_SYMBOL_LOAD = packed record
+  TIMAGEHLP_DEFERRED_SYMBOL_LOAD = record
           SizeOfStruct : dword;
           BaseOfImage : dword;
           CheckSum : dword;
@@ -751,7 +756,7 @@ Type
 {$endif}
 
   PIMAGEHLP_DUPLICATE_SYMBOL64 = ^TIMAGEHLP_DUPLICATE_SYMBOL64;
-  TIMAGEHLP_DUPLICATE_SYMBOL64 = packed record
+  TIMAGEHLP_DUPLICATE_SYMBOL64 = record
           SizeOfStruct : dword;
           NumberOfDups : dword;
           Symbol : PIMAGEHLP_SYMBOL64;
@@ -766,7 +771,7 @@ Type
   LPIMAGEHLP_DUPLICATE_SYMBOL = PIMAGEHLP_DUPLICATE_SYMBOL64;       
 {$else}
   PIMAGEHLP_DUPLICATE_SYMBOL = ^TIMAGEHLP_DUPLICATE_SYMBOL;
-  TIMAGEHLP_DUPLICATE_SYMBOL = packed record
+  TIMAGEHLP_DUPLICATE_SYMBOL = record
           SizeOfStruct : dword;
           NumberOfDups : dword;
           Symbol : PIMAGEHLP_SYMBOL;
@@ -776,7 +781,7 @@ Type
   LPIMAGEHLP_DUPLICATE_SYMBOL = PIMAGEHLP_DUPLICATE_SYMBOL;
 {$endif}
   PSRCCODEINFO = ^TSRCCODEINFO;
-  TSRCCODEINFO = packed record
+  TSRCCODEINFO = record
           SizeOfStruct : dword;
           Key : pointer;
           ModBase : dword64;
@@ -789,7 +794,7 @@ Type
   LPSRCCODEINFO = PSRCCODEINFO;
 
   PIMAGEHLP_SYMBOL_SRC = ^TIMAGEHLP_SYMBOL_SRC;
-  TIMAGEHLP_SYMBOL_SRC = packed record
+  TIMAGEHLP_SYMBOL_SRC = record
           sizeofstruct : dword;
           _type : dword;
           _file : array[0..(MAX_PATH)-1] of char;
@@ -798,7 +803,7 @@ Type
   LPIMAGEHLP_SYMBOL_SRC = PIMAGEHLP_SYMBOL_SRC;
   
   PMODULE_TYPE_INFO = ^TMODULE_TYPE_INFO;
-  TMODULE_TYPE_INFO = packed record
+  TMODULE_TYPE_INFO = record
           dataLength : USHORT;
           leaf : USHORT;
           data : array[0..0] of TBYTE;
@@ -807,7 +812,7 @@ Type
   LPMODULE_TYPE_INFO = PMODULE_TYPE_INFO;
   
   PSYMBOL_INFO = ^TSYMBOL_INFO;
-  TSYMBOL_INFO = packed record
+  TSYMBOL_INFO = record
           SizeOfStruct : ULONG;
           TypeIndex : ULONG;
           Reserved : array[0..1] of ULONG64;
@@ -828,7 +833,7 @@ Type
   LPSYMBOL_INFO = PSYMBOL_INFO;
 
   PSYMBOL_INFO_PACKAGE = ^TSYMBOL_INFO_PACKAGE;
-  TSYMBOL_INFO_PACKAGE = packed record
+  TSYMBOL_INFO_PACKAGE = record
           si : TSYMBOL_INFO;
           name : array[0..(MAX_SYM_NAME+1)-1] of TCHAR;
        end;
@@ -836,7 +841,7 @@ Type
   LPSYMBOL_INFO_PACKAGE = PSYMBOL_INFO_PACKAGE;
 
   PIMAGEHLP_STACK_FRAME = ^TIMAGEHLP_STACK_FRAME;
-  TIMAGEHLP_STACK_FRAME = packed record
+  TIMAGEHLP_STACK_FRAME = record
           InstructionOffset : ULONG64;
           ReturnOffset : ULONG64;
           FrameOffset : ULONG64;
@@ -856,27 +861,27 @@ Type
   PPIMAGEHLP_CONTEXT = ^PIMAGEHLP_CONTEXT;
   
   PTI_FINDCHILDREN_PARAMS = ^TTI_FINDCHILDREN_PARAMS;
-  TTI_FINDCHILDREN_PARAMS = packed record
+  TTI_FINDCHILDREN_PARAMS = record
           Count : ULONG;
           Start : ULONG;
           ChildId : array[0..0] of ULONG;
        end;
   PMINIDUMP_LOCATION_DESCRIPTOR = ^TMINIDUMP_LOCATION_DESCRIPTOR;
-  TMINIDUMP_LOCATION_DESCRIPTOR = packed record
+  TMINIDUMP_LOCATION_DESCRIPTOR = record
           DataSize : ULONG32;
           Rva : TRVA;
        end;
   MINIDUMP_LOCATION_DESCRIPTOR = TMINIDUMP_LOCATION_DESCRIPTOR ;
 
   PMINIDUMP_LOCATION_DESCRIPTOR64 = ^TMINIDUMP_LOCATION_DESCRIPTOR64;
-  TMINIDUMP_LOCATION_DESCRIPTOR64 = packed record
+  TMINIDUMP_LOCATION_DESCRIPTOR64 = record
           DataSize : ULONG64;
           Rva : TRVA64;
        end;
   MINIDUMP_LOCATION_DESCRIPTOR64 =   TMINIDUMP_LOCATION_DESCRIPTOR64;
   
   PMINIDUMP_MEMORY_DESCRIPTOR = ^TMINIDUMP_MEMORY_DESCRIPTOR;
-  TMINIDUMP_MEMORY_DESCRIPTOR = packed record
+  TMINIDUMP_MEMORY_DESCRIPTOR = record
           StartOfMemoryRange : ULONG64;
           Memory : TMINIDUMP_LOCATION_DESCRIPTOR;
        end;
@@ -884,7 +889,7 @@ Type
   LPMINIDUMP_MEMORY_DESCRIPTOR = PMINIDUMP_MEMORY_DESCRIPTOR;
   
   PMINIDUMP_MEMORY_DESCRIPTOR64 = ^TMINIDUMP_MEMORY_DESCRIPTOR64;
-  TMINIDUMP_MEMORY_DESCRIPTOR64 = packed record
+  TMINIDUMP_MEMORY_DESCRIPTOR64 = record
           StartOfMemoryRange : ULONG64;
           DataSize : ULONG64;
        end;
@@ -892,7 +897,7 @@ Type
   LPMINIDUMP_MEMORY_DESCRIPTOR64 = PMINIDUMP_MEMORY_DESCRIPTOR64;
 
   PMINIDUMP_HEADER = ^TMINIDUMP_HEADER;
-  TMINIDUMP_HEADER = packed record
+  TMINIDUMP_HEADER = record
           Signature : ULONG32;
           Version : ULONG32;
           NumberOfStreams : ULONG32;
@@ -909,7 +914,7 @@ Type
   LPMINIDUMP_HEADER = PMINIDUMP_HEADER;
   
   PMINIDUMP_DIRECTORY = ^TMINIDUMP_DIRECTORY;
-  TMINIDUMP_DIRECTORY = packed record
+  TMINIDUMP_DIRECTORY = record
           StreamType : ULONG32;
           Location : TMINIDUMP_LOCATION_DESCRIPTOR;
        end;
@@ -918,7 +923,7 @@ Type
   PPMINIDUMP_DIRECTORY = ^PMINIDUMP_DIRECTORY;
   
   PMINIDUMP_STRING = ^TMINIDUMP_STRING;
-  TMINIDUMP_STRING = packed record
+  TMINIDUMP_STRING = record
           Length : ULONG32;
           Buffer : array[0..0] of WCHAR;
        end;
@@ -927,7 +932,7 @@ Type
   
   
   PCPU_INFORMATION = ^TCPU_INFORMATION;
-  TCPU_INFORMATION = packed record
+  TCPU_INFORMATION = record
          case longint of
             0 : ( X86CpuInfo : packed record
                  VendorId : array[0..2] of ULONG32;
@@ -943,7 +948,7 @@ Type
   LPCPU_INFORMATION = PCPU_INFORMATION;
   
   PMINIDUMP_SYSTEM_INFO = ^TMINIDUMP_SYSTEM_INFO;
-  TMINIDUMP_SYSTEM_INFO = packed record
+  TMINIDUMP_SYSTEM_INFO = record
           ProcessorArchitecture : USHORT;
           ProcessorLevel : USHORT;
           ProcessorRevision : USHORT;
@@ -974,7 +979,7 @@ Type
   LPMINIDUMP_SYSTEM_INFO = PMINIDUMP_SYSTEM_INFO;
   
   PMINIDUMP_THREAD = ^TMINIDUMP_THREAD;
-  TMINIDUMP_THREAD = packed record
+  TMINIDUMP_THREAD = record
           ThreadId : ULONG32;
           SuspendCount : ULONG32;
           PriorityClass : ULONG32;
@@ -987,7 +992,7 @@ Type
   LPMINIDUMP_THREAD = PMINIDUMP_THREAD;
   
   PMINIDUMP_THREAD_LIST = ^TMINIDUMP_THREAD_LIST;
-  TMINIDUMP_THREAD_LIST = packed record
+  TMINIDUMP_THREAD_LIST = record
           NumberOfThreads : ULONG32;
           Threads : array[0..0] of TMINIDUMP_THREAD;
        end;
@@ -995,7 +1000,7 @@ Type
   LPMINIDUMP_THREAD_LIST = PMINIDUMP_THREAD_LIST;
 
   PMINIDUMP_THREAD_EX = ^TMINIDUMP_THREAD_EX;
-  TMINIDUMP_THREAD_EX = packed record
+  TMINIDUMP_THREAD_EX = record
           ThreadId : ULONG32;
           SuspendCount : ULONG32;
           PriorityClass : ULONG32;
@@ -1010,7 +1015,7 @@ Type
   
 
   PMINIDUMP_THREAD_EX_LIST = ^TMINIDUMP_THREAD_EX_LIST;
-  TMINIDUMP_THREAD_EX_LIST = packed record
+  TMINIDUMP_THREAD_EX_LIST = record
           NumberOfThreads : ULONG32;
           Threads : array[0..0] of TMINIDUMP_THREAD_EX;
        end;
@@ -1019,7 +1024,7 @@ Type
  
 
   PMINIDUMP_EXCEPTION = ^TMINIDUMP_EXCEPTION;
-  TMINIDUMP_EXCEPTION = packed record
+  TMINIDUMP_EXCEPTION = record
           ExceptionCode : ULONG32;
           ExceptionFlags : ULONG32;
           ExceptionRecord : ULONG64;
@@ -1033,7 +1038,7 @@ Type
    
 
   PMINIDUMP_EXCEPTION_STREAM = ^TMINIDUMP_EXCEPTION_STREAM;
-  TMINIDUMP_EXCEPTION_STREAM = packed record
+  TMINIDUMP_EXCEPTION_STREAM = record
           ThreadId : ULONG32;
           __alignment : ULONG32;
           ExceptionRecord : TMINIDUMP_EXCEPTION;
@@ -1043,7 +1048,7 @@ Type
   LPMINIDUMP_EXCEPTION_STREAM = PMINIDUMP_EXCEPTION_STREAM;
   
   PMINIDUMP_MODULE = ^TMINIDUMP_MODULE;
-  TMINIDUMP_MODULE = packed record
+  TMINIDUMP_MODULE = record
           BaseOfImage : ULONG64;
           SizeOfImage : ULONG32;
           CheckSum : ULONG32;
@@ -1060,7 +1065,7 @@ Type
   
 
   PMINIDUMP_MODULE_LIST = ^TMINIDUMP_MODULE_LIST;
-  TMINIDUMP_MODULE_LIST = packed record
+  TMINIDUMP_MODULE_LIST = record
           NumberOfModules : ULONG32;
           Modules : array[0..0] of TMINIDUMP_MODULE;
        end;
@@ -1069,7 +1074,7 @@ Type
    
 
   PMINIDUMP_MEMORY_LIST = ^TMINIDUMP_MEMORY_LIST;
-  TMINIDUMP_MEMORY_LIST = packed record
+  TMINIDUMP_MEMORY_LIST = record
           NumberOfMemoryRanges : ULONG32;
           MemoryRanges : array[0..0] of TMINIDUMP_MEMORY_DESCRIPTOR;
        end;
@@ -1077,7 +1082,7 @@ Type
   LPMINIDUMP_MEMORY_LIST = PMINIDUMP_MEMORY_LIST;
 
   PMINIDUMP_MEMORY64_LIST = ^TMINIDUMP_MEMORY64_LIST;
-  TMINIDUMP_MEMORY64_LIST = packed record
+  TMINIDUMP_MEMORY64_LIST = record
           NumberOfMemoryRanges : ULONG64;
           BaseRva : TRVA64;
           MemoryRanges : array[0..0] of TMINIDUMP_MEMORY_DESCRIPTOR64;
@@ -1086,7 +1091,7 @@ Type
   LPMINIDUMP_MEMORY64_LIST = PMINIDUMP_MEMORY64_LIST;
   
   PMINIDUMP_EXCEPTION_INFORMATION = ^TMINIDUMP_EXCEPTION_INFORMATION;
-  TMINIDUMP_EXCEPTION_INFORMATION = packed record
+  TMINIDUMP_EXCEPTION_INFORMATION = record
           ThreadId : dword;
           ExceptionPointers : PEXCEPTION_POINTERS;
           ClientPointers : BOOL;
@@ -1095,7 +1100,7 @@ Type
   LPMINIDUMP_EXCEPTION_INFORMATION = PMINIDUMP_EXCEPTION_INFORMATION;
 
   PMINIDUMP_EXCEPTION_INFORMATION64 = ^TMINIDUMP_EXCEPTION_INFORMATION64;
-  TMINIDUMP_EXCEPTION_INFORMATION64 = packed record
+  TMINIDUMP_EXCEPTION_INFORMATION64 = record
           ThreadId : dword;
           ExceptionRecord : ULONG64;
           ContextRecord : ULONG64;
@@ -1105,7 +1110,7 @@ Type
   LPMINIDUMP_EXCEPTION_INFORMATION64 = PMINIDUMP_EXCEPTION_INFORMATION64;
   
   PMINIDUMP_HANDLE_DESCRIPTOR = ^TMINIDUMP_HANDLE_DESCRIPTOR;
-  TMINIDUMP_HANDLE_DESCRIPTOR = packed record
+  TMINIDUMP_HANDLE_DESCRIPTOR = record
           Handle : ULONG64;
           TypeNameRva : TRVA;
           ObjectNameRva : TRVA;
@@ -1118,7 +1123,7 @@ Type
   LPMINIDUMP_HANDLE_DESCRIPTOR = PMINIDUMP_HANDLE_DESCRIPTOR;
 
   PMINIDUMP_HANDLE_DATA_STREAM = ^TMINIDUMP_HANDLE_DATA_STREAM;
-  TMINIDUMP_HANDLE_DATA_STREAM = packed record
+  TMINIDUMP_HANDLE_DATA_STREAM = record
           SizeOfHeader : ULONG32;
           SizeOfDescriptor : ULONG32;
           NumberOfDescriptors : ULONG32;
@@ -1129,7 +1134,7 @@ Type
   
 
   PMINIDUMP_FUNCTION_TABLE_DESCRIPTOR = ^TMINIDUMP_FUNCTION_TABLE_DESCRIPTOR;
-  TMINIDUMP_FUNCTION_TABLE_DESCRIPTOR = packed record
+  TMINIDUMP_FUNCTION_TABLE_DESCRIPTOR = record
           MinimumAddress : ULONG64;
           MaximumAddress : ULONG64;
           BaseAddress : ULONG64;
@@ -1140,7 +1145,7 @@ Type
   LPMINIDUMP_FUNCTION_TABLE_DESCRIPTOR = PMINIDUMP_FUNCTION_TABLE_DESCRIPTOR;
 
   PMINIDUMP_FUNCTION_TABLE_STREAM = ^TMINIDUMP_FUNCTION_TABLE_STREAM;
-  TMINIDUMP_FUNCTION_TABLE_STREAM = packed record
+  TMINIDUMP_FUNCTION_TABLE_STREAM = record
           SizeOfHeader : ULONG32;
           SizeOfDescriptor : ULONG32;
           SizeOfNativeDescriptor : ULONG32;
@@ -1153,7 +1158,7 @@ Type
   
 
   PMINIDUMP_UNLOADED_MODULE = ^TMINIDUMP_UNLOADED_MODULE;
-  TMINIDUMP_UNLOADED_MODULE = packed record
+  TMINIDUMP_UNLOADED_MODULE = record
           BaseOfImage : ULONG64;
           SizeOfImage : ULONG32;
           CheckSum : ULONG32;
@@ -1164,7 +1169,7 @@ Type
   LPMINIDUMP_UNLOADED_MODULE = PMINIDUMP_UNLOADED_MODULE;
   
   PMINIDUMP_UNLOADED_MODULE_LIST = ^TMINIDUMP_UNLOADED_MODULE_LIST;
-  TMINIDUMP_UNLOADED_MODULE_LIST = packed record
+  TMINIDUMP_UNLOADED_MODULE_LIST = record
           SizeOfHeader : ULONG32;
           SizeOfEntry : ULONG32;
           NumberOfEntries : ULONG32;
@@ -1173,7 +1178,7 @@ Type
   LPMINIDUMP_UNLOADED_MODULE_LIST = PMINIDUMP_UNLOADED_MODULE_LIST;
   
   PMINIDUMP_MISC_INFO = ^TMINIDUMP_MISC_INFO;
-  TMINIDUMP_MISC_INFO = packed record
+  TMINIDUMP_MISC_INFO = record
           SizeOfInfo : ULONG32;
           Flags1 : ULONG32;
           ProcessId : ULONG32;
@@ -1185,7 +1190,7 @@ Type
   LPMINIDUMP_MISC_INFO = PMINIDUMP_MISC_INFO;
 
   PMINIDUMP_USER_RECORD = ^TMINIDUMP_USER_RECORD;
-  TMINIDUMP_USER_RECORD = packed record
+  TMINIDUMP_USER_RECORD = record
           _Type : ULONG32;
           Memory : TMINIDUMP_LOCATION_DESCRIPTOR;
        end;
@@ -1193,7 +1198,7 @@ Type
   LPMINIDUMP_USER_RECORD = PMINIDUMP_USER_RECORD;
 
   PMINIDUMP_USER_STREAM = ^TMINIDUMP_USER_STREAM;
-  TMINIDUMP_USER_STREAM = packed record
+  TMINIDUMP_USER_STREAM = record
           _Type : ULONG32;
           BufferSize : ULONG;
           Buffer : pointer;
@@ -1202,7 +1207,7 @@ Type
   LPMINIDUMP_USER_STREAM = PMINIDUMP_USER_STREAM;
 
   PMINIDUMP_USER_STREAM_INFORMATION = ^TMINIDUMP_USER_STREAM_INFORMATION;
-  TMINIDUMP_USER_STREAM_INFORMATION = packed record
+  TMINIDUMP_USER_STREAM_INFORMATION = record
           UserStreamCount : ULONG;
           UserStreamArray : PMINIDUMP_USER_STREAM;
        end;
@@ -1210,7 +1215,7 @@ Type
   LPMINIDUMP_USER_STREAM_INFORMATION = PMINIDUMP_USER_STREAM_INFORMATION;
   	 
   PMINIDUMP_THREAD_CALLBACK = ^TMINIDUMP_THREAD_CALLBACK;
-  TMINIDUMP_THREAD_CALLBACK = packed record
+  TMINIDUMP_THREAD_CALLBACK = record
           ThreadId : ULONG;
           ThreadHandle : THANDLE;
           Context : TCONTEXT;
@@ -1222,7 +1227,7 @@ Type
   LPMINIDUMP_THREAD_CALLBACK = PMINIDUMP_THREAD_CALLBACK;
 
   PMINIDUMP_THREAD_EX_CALLBACK = ^TMINIDUMP_THREAD_EX_CALLBACK;
-  TMINIDUMP_THREAD_EX_CALLBACK = packed record
+  TMINIDUMP_THREAD_EX_CALLBACK = record
           ThreadId : ULONG;
           ThreadHandle : THANDLE;
           Context : TCONTEXT;
@@ -1236,14 +1241,14 @@ Type
   LPMINIDUMP_THREAD_EX_CALLBACK = PMINIDUMP_THREAD_EX_CALLBACK;
 
   PMINIDUMP_INCLUDE_THREAD_CALLBACK = ^TMINIDUMP_INCLUDE_THREAD_CALLBACK;
-  TMINIDUMP_INCLUDE_THREAD_CALLBACK = packed record
+  TMINIDUMP_INCLUDE_THREAD_CALLBACK = record
           ThreadId : ULONG;
        end;
   MINIDUMP_INCLUDE_THREAD_CALLBACK = TMINIDUMP_INCLUDE_THREAD_CALLBACK;
   LPMINIDUMP_INCLUDE_THREAD_CALLBACK = PMINIDUMP_INCLUDE_THREAD_CALLBACK;
 
   PMINIDUMP_MODULE_CALLBACK = ^TMINIDUMP_MODULE_CALLBACK;
-  TMINIDUMP_MODULE_CALLBACK = packed record
+  TMINIDUMP_MODULE_CALLBACK = record
           FullPath : PWCHAR;
           BaseOfImage : ULONG64;
           SizeOfImage : ULONG;
@@ -1259,7 +1264,7 @@ Type
   LPMINIDUMP_MODULE_CALLBACK = PMINIDUMP_MODULE_CALLBACK;
 
   PMINIDUMP_INCLUDE_MODULE_CALLBACK = ^TMINIDUMP_INCLUDE_MODULE_CALLBACK;
-  TMINIDUMP_INCLUDE_MODULE_CALLBACK = packed record
+  TMINIDUMP_INCLUDE_MODULE_CALLBACK = record
           BaseOfImage : ULONG64;
        end;
   MINIDUMP_INCLUDE_MODULE_CALLBACK = TMINIDUMP_INCLUDE_MODULE_CALLBACK;
@@ -1267,7 +1272,7 @@ Type
 
      
   PMINIDUMP_CALLBACK_INPUT = ^TMINIDUMP_CALLBACK_INPUT;
-  TMINIDUMP_CALLBACK_INPUT = packed record
+  TMINIDUMP_CALLBACK_INPUT = record
           ProcessId : ULONG;
           ProcessHandle : THANDLE;
           CallbackType : ULONG;
@@ -1284,7 +1289,7 @@ Type
   LPMINIDUMP_CALLBACK_INPUT = PMINIDUMP_CALLBACK_INPUT;
 
   PMINIDUMP_CALLBACK_OUTPUT = ^TMINIDUMP_CALLBACK_OUTPUT;
-  TMINIDUMP_CALLBACK_OUTPUT = packed record
+  TMINIDUMP_CALLBACK_OUTPUT = record
           anony3 : packed record
               case longint of
                  0 : ( ModuleWriteFlags : ULONG );
@@ -1323,10 +1328,10 @@ Type
   TGET_MODULE_BASE_ROUTINE64      = function (hProcess:THANDLE; Address:dword64):dword64;stdcall;
   TTRANSLATE_ADDRESS_ROUTINE64    = function (hProcess:THANDLE; hThread:THANDLE; lpaddr:LPADDRESS64):dword64;stdcall;
   {$IFDEF IMAGEHLP64}
-    TREAD_PROCESS_MEMORY_ROUTINE PREAD_PROCESS_MEMORY_ROUTINE =TREAD_PROCESS_MEMORY_ROUTINE PREAD_PROCESS_MEMORY_ROUTINE64;
-    TFUNCTION_TABLE_ACCESS_ROUTINE PFUNCTION_TABLE_ACCESS_ROUTINE = TFUNCTION_TABLE_ACCESS_ROUTINE PFUNCTION_TABLE_ACCESS_ROUTINE64;
-    TGET_MODULE_BASE_ROUTINE PGET_MODULE_BASE_ROUTINE = TGET_MODULE_BASE_ROUTINE PGET_MODULE_BASE_ROUTINE64;
-    TTRANSLATE_ADDRESS_ROUTINE PTRANSLATE_ADDRESS_ROUTINE = TTRANSLATE_ADDRESS_ROUTINE PTRANSLATE_ADDRESS_ROUTINE64;
+    TREAD_PROCESS_MEMORY_ROUTINE    = TREAD_PROCESS_MEMORY_ROUTINE64 ;
+    TFUNCTION_TABLE_ACCESS_ROUTINE  = TFUNCTION_TABLE_ACCESS_ROUTINE64;
+    TGET_MODULE_BASE_ROUTINE        = TGET_MODULE_BASE_ROUTINE64;
+    TTRANSLATE_ADDRESS_ROUTINE      = TTRANSLATE_ADDRESS_ROUTINE64;
   {$ELSE}
     TREAD_PROCESS_MEMORY_ROUTINE = function (hProcess:THANDLE; lpBaseAddress:dword; lpBuffer:pointer; nSize:dword; lpNumberOfBytesRead:PDWORD):bool;stdcall;
     TFUNCTION_TABLE_ACCESS_ROUTINE = function (hProcess:THANDLE; AddrBase:dword):pointer;stdcall;
@@ -1360,7 +1365,7 @@ Type
    TDBGHELP_CREATE_USER_DUMP_CALLBACK = function (DataType:dword; Data:PPOINTER; DataLength:lpdword; UserData:pointer):BOOL;stdcall;   
    TMINIDUMP_CALLBACK_ROUTINE = function (CallbackParam:pointer; CallbackInput:PMINIDUMP_CALLBACK_INPUT; CallbackOutput:PMINIDUMP_CALLBACK_OUTPUT):BOOL;stdcall;
    PMINIDUMP_CALLBACK_INFORMATION = ^TMINIDUMP_CALLBACK_INFORMATION;
-   TMINIDUMP_CALLBACK_INFORMATION = packed record
+   TMINIDUMP_CALLBACK_INFORMATION = record
           CallbackRoutine : TMINIDUMP_CALLBACK_ROUTINE;
           CallbackParam : pointer;
        end;
@@ -1457,8 +1462,8 @@ function SymGetSymPrev64(hProcess:THANDLE; Symbol:PIMAGEHLP_SYMBOL64):BOOL;stdca
 {$ifdef IMAGEHLP64}
 function SymEnumerateModules(hProcess:THANDLE; EnumModulesCallback:TSYM_ENUMMODULES_CALLBACK64; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateModules64';
 function SymEnumerateSymbols(hProcess:THANDLE; BaseOfDll:dword64; EnumSymbolsCallback:TSYM_ENUMSYMBOLS_CALLBACK64; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateSymbols64';  
-function SymEnumerateSymbolsW(hProcess:THANDLE; BaseOfDll:dword64; EnumSymbolsCallback:TSYM_ENUMSYMBOLS_CALLBACK64W; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateSymbolsW64'
-function EnumerateLoadedModules(hProcess:THANDLE; EnumLoadedModulesCallback:TPENUMLOADED_MODULES_CALLBACK64; UserContext:pointer):BOOL;stdcall;external External_library name 'EnumerateLoadedModules64';;
+function SymEnumerateSymbolsW(hProcess:THANDLE; BaseOfDll:dword64; EnumSymbolsCallback:TSYM_ENUMSYMBOLS_CALLBACK64W; UserContext:pointer):BOOL;stdcall;external External_library name 'SymEnumerateSymbolsW64';
+function EnumerateLoadedModules(hProcess:THANDLE; EnumLoadedModulesCallback:TENUMLOADED_MODULES_CALLBACK64; UserContext:pointer):BOOL;stdcall;external External_library name 'EnumerateLoadedModules64';
 function SymFunctionTableAccess(hProcess:THANDLE; AddrBase:dword64):pointer;stdcall;external External_library name 'SymFunctionTableAccess64';
 function SymGetModuleInfo(hProcess:THANDLE; qwAddr:dword64; ModuleInfo:PIMAGEHLP_MODULE64):BOOL;stdcall;external External_library name 'SymGetModuleInfo64';
 function SymGetModuleInfoW(hProcess:THANDLE; qwAddr:dword64; ModuleInfo:PIMAGEHLP_MODULEW64):BOOL;stdcall;external External_library name 'SymGetModuleInfoW64';
@@ -1491,7 +1496,7 @@ function SymRegisterFunctionEntryCallback64(hProcess:THANDLE; CallbackFunction:T
 
 {$ifdef IMAGEHLP64}
 function SymGetLineFromAddr(hProcess:THANDLE; qwAddr:dword64; pdwDisplacement:PDWORD; Line64:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLineFromAddr64';
-function SymGetLineFromName(hProcess:THANDLE; ModuleName:PSTR; FileName:PSTR; dwLineNumber:dword; plDisplacement:TPLONG; 
+function SymGetLineFromName(hProcess:THANDLE; ModuleName:PSTR; FileName:PSTR; dwLineNumber:dword; plDisplacement:PLONG; 
              Line:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLineFromName64';
 function SymGetLineNext(hProcess:THANDLE; Line:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLineNext64';			 
 function SymGetLinePrev(hProcess:THANDLE; Line:PIMAGEHLP_LINE64):BOOL;stdcall;external External_library name 'SymGetLinePrev64'; 

+ 1 - 2
rtl/beos/system.pp

@@ -383,8 +383,7 @@ begin
   { Set up signals handlers (may be needed by init code to test cpu features) }
   InstallSignals;
 
-  SysInitStdIO;
-{ Setup heap }
+  { Setup heap }
   myheapsize:=4096*1;// $ 20000;
   myheaprealsize:=4096*1;// $ 20000;
   heapstart:=nil;

+ 1 - 2
rtl/haiku/system.pp

@@ -416,8 +416,7 @@ begin
   { Set up signals handlers }
   InstallSignals;
 
-  SysInitStdIO;
-{ Setup heap }
+  { Setup heap }
   myheapsize:=4096*100;// $ 20000;
   myheaprealsize:=4096*100;// $ 20000;
   heapstart:=nil;

+ 93 - 53
rtl/haiku/unxsockh.inc

@@ -2,6 +2,7 @@
    This file is part of the Free Pascal run time library.
    (c) 2000-2003 by Marco van de Voort
    member of the Free Pascal development team.
+   (c) 2010 by Olivier Coursière.
 
    See the file COPYING.FPC, included in this distribution,
    for details about the copyright.
@@ -17,10 +18,21 @@ Const
 {*
  * Address families.
  *}
-  AF_UNSPEC        = 0;		{ unspecified }
-  AF_UNIX          = 1;		{ standardized name for AF_LOCAL }
-  AF_LOCAL         = AF_UNIX;	{ local to host (pipes, portals) }
-  AF_INET          = 2;		{ internetwork: UDP, TCP, etc. }
+  AF_UNSPEC        = 0;			{ unspecified }
+  AF_INET          = 1;			{ internetwork: UDP, TCP, etc. }
+  AF_APPLETALK     = 2;			{ Apple Talk }
+  AF_ROUTE         = 3;			{ Internal Routing Protocol }
+  AF_LINK          = 4;			{ Link layer interface }
+  AF_INET6         = 5;			{ IPv6 }
+  AF_DLI           = 6;			{ DEC Direct data link interface }
+  AF_IPX           = 7;			{ Novell Internet Protocol }
+  AF_NOTIFY        = 8; 		{ ??? }
+  AF_LOCAL         = 9;			{ local to host (pipes, portals) }
+  AF_UNIX          = AF_LOCAL;	{ standardized name for AF_LOCAL }
+  AF_BLUETOOTH     = 10; 		{ Bluetooth sockets }
+  AF_MAX           = 11;
+
+(* Values not yet defined under Haiku (see sys/socket.h)
   AF_IMPLINK       = 3;		{ arpanet imp addresses }
   AF_PUP           = 4;		{ pup protocols: e.g. BSP }
   AF_CHAOS         = 5;		{ mit CHAOS protocols }
@@ -32,23 +44,17 @@ Const
   AF_CCITT         = 10;	{ CCITT protocols, X.25 etc }
   AF_SNA           = 11;	{ IBM SNA }
   AF_DECnet        = 12;	{ DECnet }
-  AF_DLI           = 13;	{ DEC Direct data link interface }
   AF_LAT           = 14;	{ LAT }
   AF_HYLINK        = 15;	{ NSC Hyperchannel }
-  AF_APPLETALK     = 16;	{ Apple Talk }
-  AF_ROUTE         = 17;	{ Internal Routing Protocol }
-  AF_LINK          = 18;	{ Link layer interface }
   pseudo_AF_XTP    = 19;	{ eXpress Transfer Protocol (no AF) }
   AF_COIP          = 20;	{ connection-oriented IP, aka ST II }
   AF_CNT           = 21;	{ Computer Network Technology }
   pseudo_AF_RTIP   = 22;	{ Help Identify RTIP packets }
-  AF_IPX           = 23;	{ Novell Internet Protocol }
   AF_SIP           = 24;	{ Simple Internet Protocol }
   pseudo_AF_PIP    = 25;	{ Help Identify PIP packets }
   AF_ISDN          = 26;	{ Integrated Services Digital Network}
   AF_E164          = AF_ISDN;	{ CCITT E.164 recommendation }
   pseudo_AF_KEY    = 27;	{ Internal key-management function }
-  AF_INET6         = 28;	{ IPv6 }
   AF_NATM          = 29;	{ native ATM access }
   AF_ATM           = 30;	{ ATM }
   pseudo_AF_HDRCMPLT = 31;	{ Used by BPF to not rewrite headers
@@ -58,20 +64,26 @@ Const
   AF_SLOW          = 33;	{ 802.3ad slow protocol }
   AF_SCLUSTER      = 34;	{ Sitara cluster protocol }
   AF_ARP           = 35;
-  AF_BLUETOOTH     = 36;	{ Bluetooth sockets }
   AF_IEEE80211     = 37;	{ IEEE 802.11 protocol }
-  AF_MAX           = 38;
-  
+*)
+
   {
    * Protocol families, same as address families for now.
     }
 
   const
      PF_UNSPEC = AF_UNSPEC;
+     PF_INET = AF_INET;
+     PF_ROUTE = AF_ROUTE;
+     PF_LINK = AF_LINK;
+     PF_INET6 = AF_INET6;
      PF_LOCAL = AF_LOCAL;
   { backward compatibility  }
      PF_UNIX = PF_LOCAL;
-     PF_INET = AF_INET;
+     PF_BLUETOOTH = AF_BLUETOOTH;
+     PF_MAX = AF_MAX;
+
+(* Values not yet defined under Haiku (see sys/socket.h)
      PF_IMPLINK = AF_IMPLINK;
      PF_PUP = AF_PUP;
      PF_CHAOS = AF_CHAOS;
@@ -87,8 +99,6 @@ Const
      PF_LAT = AF_LAT;
      PF_HYLINK = AF_HYLINK;
      PF_APPLETALK = AF_APPLETALK;
-     PF_ROUTE = AF_ROUTE;
-     PF_LINK = AF_LINK;
   { really just proto family, no AF  }
      PF_XTP = pseudo_AF_XTP;
      PF_COIP = AF_COIP;
@@ -100,47 +110,51 @@ Const
      PF_PIP = pseudo_AF_PIP;
      PF_ISDN = AF_ISDN;
      PF_KEY = pseudo_AF_KEY;
-     PF_INET6 = AF_INET6;
      PF_NATM = AF_NATM;
      PF_ATM = AF_ATM;
      PF_NETGRAPH = AF_NETGRAPH;
      PF_SLOW = AF_SLOW;
      PF_SCLUSTER = AF_SCLUSTER;
      PF_ARP = AF_ARP;
-     PF_BLUETOOTH = AF_BLUETOOTH;
-     PF_MAX = AF_MAX;
-
+*)
 
   SOCK_PACKET     = 10;
 
 
 { Maximum queue length specifiable by listen.  }
-  SOMAXCONN     = 128;
+  SOMAXCONN     = 32;
 
-        SOL_SOCKET 	 = $FFFF;
-        SO_DEBUG         = $0001;        { turn on debugging info recording }
-        SO_ACCEPTCONN    = $0002;        { socket has had listen() }
-        SO_REUSEADDR     = $0004;        { allow local address reuse }
-        SO_KEEPALIVE     = $0008;        { keep connections alive }
-        SO_DONTROUTE     = $0010;        { just use interface addresses }
-        SO_BROADCAST     = $0020;        { permit sending of broadcast msgs }
-        SO_USELOOPBACK   = $0040;        { bypass hardware when possible }
-        SO_LINGER        = $0080;        { linger on close if data present }
-        SO_OOBINLINE     = $0100;        { leave received OOB data in line }
-        SO_REUSEPORT     = $0200;        { allow local address & port reuse }
+        SOL_SOCKET 	     = -1;
+
+        SO_ACCEPTCONN    = $00000001;        { socket has had listen() }
+        SO_BROADCAST     = $00000002;        { permit sending of broadcast msgs }
+        SO_DEBUG         = $00000004;        { turn on debugging info recording }
+        SO_DONTROUTE     = $00000008;        { just use interface addresses }
+        SO_KEEPALIVE     = $00000010;        { keep connections alive }
+        SO_OOBINLINE     = $00000020;        { leave received OOB data in line }
+        SO_REUSEADDR     = $00000040;        { allow local address reuse }
+        SO_REUSEPORT     = $00000080;        { allow local address & port reuse }
+        SO_USELOOPBACK   = $00000100;        { bypass hardware when possible }
+        SO_LINGER        = $00000200;        { linger on close if data present }
+        
+(* Values not yet defined under Haiku (see sys/socket.h)
         SO_TIMESTAMP     = $0400;        { timestamp received dgram traffic }
+*)
 
 {
  * Additional options, not kept in so_options.
  }
-        SO_SNDBUF        =$1001;        { send buffer size }
-        SO_RCVBUF        =$1002;        { receive buffer size }
-        SO_SNDLOWAT      =$1003;        { send low-water mark }
-        SO_RCVLOWAT      =$1004;        { receive low-water mark }
-        SO_SNDTIMEO      =$1005;        { send timeout }
-        SO_RCVTIMEO      =$1006;        { receive timeout }
-        SO_ERROR         =$1007;        { get error status and clear }
-        SO_TYPE          =$1008;        { get socket type }
+        SO_SNDBUF        = $40000001;    { send buffer size }
+        SO_SNDLOWAT      = $40000003;    { send low-water mark }
+        SO_SNDTIMEO      = $40000005;    { send timeout }
+        SO_RCVBUF        = $40000002;    { receive buffer size }
+        SO_RCVLOWAT      = $40000004;    { receive low-water mark }
+        SO_RCVTIMEO      = $40000006;    { receive timeout }
+        SO_ERROR         = $40000007;    { get error status and clear }
+        SO_TYPE          = $40000008;    { get socket type }
+        SO_NONBLOCK		 = $40000009;
+        SO_BINDTODEVICE	 = $4000000a;    { binds the socket to a specific device index }
+        SO_PEERCRED		 = $4000000b;    { get peer credentials, param: ucred }
 
 
         SHUT_RD         =0;             { shut down the reading side }
@@ -275,12 +289,25 @@ Const
 	IP_RECVRETOPTS		= 6 ;   { bool; receive IP opts for response }
 	IP_RECVDSTADDR		= 7 ;   { bool; receive IP dst addr w/dgram }
 	IP_SENDSRCADDR		= IP_RECVDSTADDR; { cmsg_type to set src addr }
-	IP_RETOPTS		= 8 ;   { ip_opts; set/get IP options }
+	IP_RETOPTS			= 8 ;   { ip_opts; set/get IP options }
 	IP_MULTICAST_IF		= 9 ;   { u_char; set/get IP multicast i/f  }
 	IP_MULTICAST_TTL	= 10;   { u_char; set/get IP multicast ttl }
 	IP_MULTICAST_LOOP	= 11;   { u_char; set/get IP multicast loopback }
 	IP_ADD_MEMBERSHIP	= 12;   { ip_mreq; add an IP group membership }
 	IP_DROP_MEMBERSHIP	= 13;   { ip_mreq; drop an IP group membership }
+	
+	IP_BLOCK_SOURCE				= 14;	{ ip_mreq_source }
+	IP_UNBLOCK_SOURCE			= 15;	{ ip_mreq_source }
+	IP_ADD_SOURCE_MEMBERSHIP	= 16;	{ ip_mreq_source }
+	IP_DROP_SOURCE_MEMBERSHIP	= 17;	{ ip_mreq_source }
+	MCAST_JOIN_GROUP			= 18;	{ group_req }
+	MCAST_BLOCK_SOURCE			= 19;	{ group_source_req }
+	MCAST_UNBLOCK_SOURCE		= 20;	{ group_source_req }
+	MCAST_LEAVE_GROUP			= 21;	{ group_req }
+	MCAST_JOIN_SOURCE_GROUP		= 22;	{ group_source_req }
+	MCAST_LEAVE_SOURCE_GROUP	= 23;	{ group_source_req }
+	
+(* Values not yet defined under Haiku (see netinet/in.h)
 	IP_MULTICAST_VIF	= 14;   { set/get IP mcast virt. iface }
 	IP_RSVP_ON		= 15;   { enable RSVP in kernel }
 	IP_RSVP_OFF		= 16;   { disable RSVP in kernel }
@@ -317,9 +344,13 @@ Const
 
 	IPV6_SOCKOPT_RESERVED1	= 3 ; { reserved for future use }
 	IPV6_UNICAST_HOPS	= 4 ; { int; IP6 hops }
-	IPV6_MULTICAST_IF	= 9 ; { u_int; setget IP6 multicast if  }
-	IPV6_MULTICAST_HOPS	= 10; { int; setget IP6 multicast hops }
-	IPV6_MULTICAST_LOOP	= 11; { u_int; setget IP6 multicast loopback }
+*)
+
+	IPV6_MULTICAST_IF	= 24; { u_int; setget IP6 multicast if  }
+	IPV6_MULTICAST_HOPS	= 25; { int; setget IP6 multicast hops }
+	IPV6_MULTICAST_LOOP	= 26; { u_int; setget IP6 multicast loopback }
+
+(* Values not yet defined under Haiku (see netinet/in.h)
 	IPV6_JOIN_GROUP		= 12; { ip6_mreq; join a group membership }
 	IPV6_LEAVE_GROUP	= 13; { ip6_mreq; leave a group membership }
 	IPV6_PORTRANGE		= 14; { int; range to choose for unspec port }
@@ -331,21 +362,30 @@ Const
  	IPV6_DSTOPTS            = 50; { ip6_dest; send dst option befor rthdr }
  	IPV6_RTHDR              = 51; { ip6_rthdr; send routing header }
  	IPV6_PKTOPTIONS         = 52; { buf/cmsghdr; set/get IPv6 options }
+*)  
   
   { Flags for send, recv etc. }
-  MSG_OOB       = $0001;              { Process out-of-band data}
-  MSG_PEEK      = $0002;              { Peek at incoming messages }
-  MSG_DONTROUTE = $0004;              { Don't use local routing }
-  MSG_EOR       = $0008;              { End of record }
-  MSG_TRUNC     = $0010;
-  MSG_CTRUNC    = $0020;              { Control data lost before delivery }
-  MSG_WAITALL   = $0040;              { Wait for a full request }
-  MSG_DONTWAIT  = $0080;              { Non-blocking I/O }
-  MSG_EOF       = $0100;
+  MSG_OOB       = $0001;              { process out-of-band data}
+  MSG_PEEK      = $0002;              { peek at incoming messages }
+  MSG_DONTROUTE = $0004;              { send without using routing tables }
+  MSG_EOR       = $0008;              { data completes record }
+  MSG_TRUNC     = $0010;              { data discarded before delivery }
+  MSG_CTRUNC    = $0020;              { control data lost before delivery }
+  MSG_WAITALL   = $0040;              { wait for full request or error }
+  MSG_DONTWAIT  = $0080;              { this message should be nonblocking }
+  MSG_BCAST     = $0100;              { this message rec'd as broadcast }
+  MSG_MCAST     = $0200;              { this message rec'd as multicast }
+  MSG_EOF       = $0400;              { data completes connection }
+  
+(* Values not yet defined under Haiku (see sys/socket.h)
   MSG_NBIO      = $4000;
   MSG_COMPAT    = $8000;
   MSG_SOCALLBCK = $10000;
   MSG_NOSIGNAL  = $20000;              { Do not generate SIGPIPE }
+*)
+
+  { SOL_SOCKET control message types }
+  SCM_RIGHTS     = $01;
   
   INVALID_SOCKET = -1;
   SOCKET_ERROR = -1;

+ 3 - 3
rtl/inc/resh.inc

@@ -1,9 +1,9 @@
   
 type
   //Obsolete types, kept for backwards compatibility
-  TResourceHandle = Cardinal;
-  HMODULE = Cardinal;
-  HGLOBAL = Cardinal;
+  TResourceHandle = PtrUint;
+  HMODULE = PtrUint;
+  HGLOBAL = PtrUint;
   //New types
   TFPResourceHandle = PtrUInt;
   TFPResourceHMODULE = PtrUInt;

+ 5 - 5
rtl/unix/sockets.pp

@@ -19,11 +19,11 @@ Uses baseunix,UnixType;
 
 {$i osdefs.inc}       { Compile time defines }
 
-{$ifdef FreeBSD}
-{$DEFINE SOCK_HAS_SINLEN}               // BSD definition of socketaddr
-{$endif}
-
-{$ifdef Darwin}
+{$if 
+     defined(FreeBSD) or 
+     defined(Darwin) or 
+     defined(Haiku)
+}
 {$DEFINE SOCK_HAS_SINLEN}               // BSD definition of socketaddr
 {$endif}
 

+ 25 - 2
rtl/win/wininc/defines.inc

@@ -1782,7 +1782,11 @@
      SM_ARRANGE = 56;
      SM_CLEANBOOT = 67;
   { The right value for SM_CEMETRICS for NT 3.5 is 75.  For Windows 95
-     and NT 4.0, it is 76.  The meaning is undocumented, anyhow.   }
+     and NT 4.0, it is 76.  The meaning is undocumented, anyhow.  
+    win2000=83,XP=90, vista/w7=93, but I suspect that is not properly
+    updated for win7 (which should be 96) in platform SDK 7. 
+    It seems to be the highest SM_ constant occupied.
+ }
      SM_CMETRICS = 76;
      SM_CMOUSEBUTTONS = 43;
      SM_CXBORDER = 5;
@@ -1848,13 +1852,32 @@
      SM_MENUDROPALIGNMENT = 40;
      SM_MIDEASTENABLED = 74;
      SM_MOUSEPRESENT = 19;
-     SM_MOUSEWHEELPRESENT = 75;
+     SM_MOUSEWHEELPRESENT = 75;    // w2k+
      SM_NETWORK = 63;
      SM_PENWINDOWS = 41;
      SM_SECURE = 44;
      SM_SHOWSOUNDS = 70;
      SM_SLOWMACHINE = 73;
      SM_SWAPBUTTON = 23;
+     SM_XVIRTUALSCREEN       = 76; // w2k+
+     SM_YVIRTUALSCREEN       = 77; // w2k+
+     SM_CXVIRTUALSCREEN      = 78; // w2k+
+     SM_CYVIRTUALSCREEN      = 79; // w2k+
+     SM_CMONITORS            = 80; // w2k+
+     SM_SAMEDISPLAYFORMAT    = 81; // w2k+
+     SM_IMMENABLED           = 82; // w2k+
+     SM_CXFOCUSBORDER        = 83; // w2k+
+     SM_CYFOCUSBORDER        = 84; // w2k+
+     SM_TABLETPC             = 86; // WinXP+
+     SM_MEDIACENTER          = 87; // WinXP+
+     SM_STARTER              = 88; // WinXP+
+     SM_SERVERR2             = 89; // WiNXP+
+     SM_MOUSEHORIZONTALWHEELPRESENT = 91; // Vista+
+     SM_CXPADDEDBORDER       = 92; // Vista+
+
+     SM_DIGITIZER            = 94; // win7+ 
+     SM_MAXIMUMTOUCHES       = 95; // win7+   
+
      ARW_BOTTOMLEFT = 0;
      ARW_BOTTOMRIGHT = $1;
      ARW_HIDE = $8;

+ 1 - 1
tests/tbs/tb0523.pp

@@ -1,4 +1,4 @@
-{ %target=i386 }
+{ %CPU=i386 }
 {$asmmode intel}
 
 var

+ 1 - 1
tests/webtbs/tw2377.pp

@@ -1,4 +1,4 @@
-{ %target=i386 }
+{ %cpu=i386 }
 { Source provided for Free Pascal Bug Report 2377 }
 { Submitted by "Christian Keck" on  2003-02-12 }
 { e-mail: [email protected] }