瀏覽代碼

* interlocked* changed to longints, including winapi. (which was a bug)

marco 21 年之前
父節點
當前提交
e546db7a23

+ 8 - 5
rtl/arm/sysutilp.inc

@@ -22,28 +22,28 @@
 { the ARM doesn't know multiprocessor system which would require locking }
 { the ARM doesn't know multiprocessor system which would require locking }
 
 
 
 
-function InterLockedDecrement (var Target: integer) : Integer;
+function InterLockedDecrement (var Target: longint) : longint;
   begin
   begin
     dec(Target);
     dec(Target);
     result:=target;
     result:=target;
   end;
   end;
 
 
 
 
-function InterLockedIncrement (var Target: integer) : Integer;
+function InterLockedIncrement (var Target: longint) : longint;
   begin
   begin
     inc(Target);
     inc(Target);
     result:=target;
     result:=target;
   end;
   end;
 
 
 
 
-function InterLockedExchange (var Target: integer;Source : integer) : Integer;
+function InterLockedExchange (var Target: longint;Source : longint) : longint;
   begin
   begin
     Result:=Target;
     Result:=Target;
     Target:=Source;
     Target:=Source;
   end;
   end;
 
 
 
 
-function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer;
+function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint;
   begin
   begin
     Result:=Target;
     Result:=Target;
     inc(Target,Source);
     inc(Target,Source);
@@ -52,6 +52,9 @@ function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2003-11-30 19:48:20  florian
+  Revision 1.2  2004-03-05 12:17:50  marco
+   * interlocked* changed to longints, including winapi. (which was a bug)
+
+  Revision 1.1  2003/11/30 19:48:20  florian
     * fixed some arm stuff
     * fixed some arm stuff
 }
 }

+ 8 - 5
rtl/i386/sysutilp.inc

@@ -20,7 +20,7 @@
 
 
 {$ASMMODE ATT}
 {$ASMMODE ATT}
 
 
-function InterLockedDecrement (var Target: integer) : Integer; assembler;
+function InterLockedDecrement (var Target: longint) : longint; assembler;
 asm
 asm
 {$ifdef REGCALL}
 {$ifdef REGCALL}
         movl    $-1,%edx
         movl    $-1,%edx
@@ -35,7 +35,7 @@ asm
 end;
 end;
 
 
 
 
-function InterLockedIncrement (var Target: integer) : Integer; assembler;
+function InterLockedIncrement (var Target: longint) : longint; assembler;
 asm
 asm
 {$ifdef REGCALL}
 {$ifdef REGCALL}
         movl    $1,%edx
         movl    $1,%edx
@@ -50,7 +50,7 @@ asm
 end;
 end;
 
 
 
 
-function InterLockedExchange (var Target: integer;Source : integer) : Integer; assembler;
+function InterLockedExchange (var Target: longint;Source : longint) : longint; assembler;
 asm
 asm
 {$ifdef REGCALL}
 {$ifdef REGCALL}
         xchgl   (%eax),%edx
         xchgl   (%eax),%edx
@@ -63,7 +63,7 @@ asm
 end;
 end;
 
 
 
 
-function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer; assembler;
+function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint; assembler;
 asm
 asm
 {$ifdef REGCALL}
 {$ifdef REGCALL}
         xchgl   %eax,%edx
         xchgl   %eax,%edx
@@ -78,7 +78,10 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.4  2003-12-23 22:23:34  peter
+  Revision 1.5  2004-03-05 12:17:50  marco
+   * interlocked* changed to longints, including winapi. (which was a bug)
+
+  Revision 1.4  2003/12/23 22:23:34  peter
     * increment should use ofcourse use 1 instead of -1
     * increment should use ofcourse use 1 instead of -1
 
 
   Revision 1.3  2003/11/11 21:08:17  peter
   Revision 1.3  2003/11/11 21:08:17  peter

+ 8 - 5
rtl/objpas/sysutils/systhrdh.inc

@@ -24,14 +24,17 @@ type
 
 
 {$endif HASINTF}
 {$endif HASINTF}
 
 
-function InterLockedIncrement (var Target: integer) : Integer;
-function InterLockedDecrement (var Target: integer) : Integer;
-function InterLockedExchange (var Target: integer;Source : integer) : Integer;
-function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer;
+function InterLockedIncrement (var Target: longint) : longint;
+function InterLockedDecrement (var Target: longint) : longint;
+function InterLockedExchange (var Target: longint;Source : longint) : longint;
+function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2003-10-06 21:01:06  peter
+  Revision 1.2  2004-03-05 12:17:50  marco
+   * interlocked* changed to longints, including winapi. (which was a bug)
+
+  Revision 1.1  2003/10/06 21:01:06  peter
     * moved classes unit to rtl
     * moved classes unit to rtl
 
 
   Revision 1.3  2002/09/07 16:01:22  peter
   Revision 1.3  2002/09/07 16:01:22  peter

+ 9 - 6
rtl/powerpc/sysutilp.inc

@@ -18,7 +18,7 @@
   This include contains cpu-specific routines
   This include contains cpu-specific routines
   ---------------------------------------------------------------------}
   ---------------------------------------------------------------------}
 
 
-function InterLockedDecrement (var Target: integer) : Integer; assembler;
+function InterLockedDecrement (var Target: longint) : longint; assembler;
 { input:  address of target in r3 }
 { input:  address of target in r3 }
 { output: target-1 in r3          }
 { output: target-1 in r3          }
 { side-effect: target := target-1 }
 { side-effect: target := target-1 }
@@ -32,7 +32,7 @@ asm
 end;
 end;
 
 
 
 
-function InterLockedIncrement (var Target: integer) : Integer; assembler;
+function InterLockedIncrement (var Target: longint) : longint; assembler;
 { input:  address of target in r3 }
 { input:  address of target in r3 }
 { output: target+1 in r3          }
 { output: target+1 in r3          }
 { side-effect: target := target+1 }
 { side-effect: target := target+1 }
@@ -46,7 +46,7 @@ asm
 end;
 end;
 
 
 
 
-function InterLockedExchange (var Target: integer;Source : integer) : Integer; assembler;
+function InterLockedExchange (var Target: longint;Source : longint) : longint; assembler;
 { input:  address of target in r3, source in r4 }
 { input:  address of target in r3, source in r4 }
 { output: target in r3                          }
 { output: target in r3                          }
 { side-effect: target := source                 }
 { side-effect: target := source                 }
@@ -59,7 +59,7 @@ asm
 end;
 end;
 
 
 
 
-function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer; assembler;
+function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint; assembler;
 { input:  address of target in r3, source in r4 }
 { input:  address of target in r3, source in r4 }
 { output: target in r3                          }
 { output: target in r3                          }
 { side-effect: target := target+source          }
 { side-effect: target := target+source          }
@@ -75,7 +75,10 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.7  2004-01-04 20:09:36  jonas
+  Revision 1.8  2004-03-05 12:17:50  marco
+   * interlocked* changed to longints, including winapi. (which was a bug)
+
+  Revision 1.7  2004/01/04 20:09:36  jonas
     * renamed "r0" usages as base register to 0
     * renamed "r0" usages as base register to 0
 
 
   Revision 1.6  2003/12/28 20:55:57  jonas
   Revision 1.6  2003/12/28 20:55:57  jonas
@@ -84,7 +87,7 @@ end;
   Revision 1.5  2003/11/29 16:27:19  jonas
   Revision 1.5  2003/11/29 16:27:19  jonas
     * fixed several ppc assembler reader related problems
     * fixed several ppc assembler reader related problems
     * local vars in assembler procedures now start at offset 4
     * local vars in assembler procedures now start at offset 4
-    * fixed second_int_to_bool (apparently an integer can be in  LOC_JUMP??)
+    * fixed second_int_to_bool (apparently an longint can be in  LOC_JUMP??)
 
 
   Revision 1.4  2003/08/24 20:50:11  olle
   Revision 1.4  2003/08/24 20:50:11  olle
     * changed used scratchreg from r0 to r10
     * changed used scratchreg from r0 to r10

+ 8 - 5
rtl/sparc/sysutilp.inc

@@ -18,7 +18,7 @@
   This include contains cpu-specific routines
   This include contains cpu-specific routines
   ---------------------------------------------------------------------}
   ---------------------------------------------------------------------}
 
 
-function InterLockedDecrement (var Target: integer) : Integer; assembler;
+function InterLockedDecrement (var Target: longint) : longint; assembler;
 asm
 asm
 {$warning FIXME}
 {$warning FIXME}
 end;
 end;
@@ -37,7 +37,7 @@ end;
 *)
 *)
 
 
 
 
-function InterLockedIncrement (var Target: integer) : Integer; assembler;
+function InterLockedIncrement (var Target: longint) : longint; assembler;
 asm
 asm
 {$warning FIXME}
 {$warning FIXME}
 end;
 end;
@@ -55,7 +55,7 @@ InterLockedIncLoop:
 end;
 end;
 *)
 *)
 
 
-function InterLockedExchange (var Target: integer;Source : integer) : Integer; assembler;
+function InterLockedExchange (var Target: longint;Source : longint) : longint; assembler;
 asm
 asm
 {$warning FIXME}
 {$warning FIXME}
 end;
 end;
@@ -73,7 +73,7 @@ end;
 *)
 *)
 
 
 
 
-function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer; assembler;
+function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint; assembler;
 asm
 asm
 {$warning FIXME}
 {$warning FIXME}
 end;
 end;
@@ -93,7 +93,10 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2003-09-01 20:46:32  peter
+  Revision 1.2  2004-03-05 12:17:50  marco
+   * interlocked* changed to longints, including winapi. (which was a bug)
+
+  Revision 1.1  2003/09/01 20:46:32  peter
     * new dummies
     * new dummies
 
 
 }
 }

+ 7 - 4
rtl/win32/wininc/redef.inc

@@ -611,9 +611,9 @@ function InsertMenuItemA(p1: HMENU; p2: UINT; p3: BOOL; const p4: TMenuItemInfoA
 {$ifdef support_smartlink}
 {$ifdef support_smartlink}
 function InterlockedCompareExchange(var Destination: Pointer; Exchange: Pointer; Comperand: Pointer): Pointer;external 'kernel32' name 'InterlockedCompareExchange';
 function InterlockedCompareExchange(var Destination: Pointer; Exchange: Pointer; Comperand: Pointer): Pointer;external 'kernel32' name 'InterlockedCompareExchange';
 {$endif support_smartlink}
 {$endif support_smartlink}
-function InterlockedDecrement(var Addend: Integer): Integer; external 'kernel32' name 'InterlockedDecrement';
-function InterlockedExchange(var Target: Integer; Value: Integer): Integer; external 'kernel32' name 'InterlockedExchange';
-function InterlockedIncrement(var Addend: Integer): Integer; external 'kernel32' name 'InterlockedIncrement';
+function InterlockedDecrement(var Addend: longint): longint; external 'kernel32' name 'InterlockedDecrement';
+function InterlockedExchange(var Target: longint; Value: longint): longint; external 'kernel32' name 'InterlockedExchange';
+function InterlockedIncrement(var Addend: longint): longint; external 'kernel32' name 'InterlockedIncrement';
 function IntersectRect(var lprcDst: TRect; const lprcSrc1, lprcSrc2: TRect): BOOL; external 'user32' name 'IntersectRect';
 function IntersectRect(var lprcDst: TRect; const lprcSrc1, lprcSrc2: TRect): BOOL; external 'user32' name 'IntersectRect';
 //function InvertRect(hDC: HDC; const lprc: TRect): BOOL; external 'user32' name 'InvertRect';
 //function InvertRect(hDC: HDC; const lprc: TRect): BOOL; external 'user32' name 'InvertRect';
 function IsDialogMessage(hDlg: HWND; var lpMsg: TMsg): BOOL;external 'user32' name 'IsDialogMessageA';
 function IsDialogMessage(hDlg: HWND; var lpMsg: TMsg): BOOL;external 'user32' name 'IsDialogMessageA';
@@ -1052,7 +1052,10 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.19  2004-02-08 17:13:11  marco
+  Revision 1.20  2004-03-05 12:17:50  marco
+   * interlocked* changed to longints, including winapi. (which was a bug)
+
+  Revision 1.19  2004/02/08 17:13:11  marco
    * getsystemtimeasfiletime
    * getsystemtimeasfiletime
 
 
   Revision 1.18  2004/02/07 00:21:10  marco
   Revision 1.18  2004/02/07 00:21:10  marco

+ 8 - 5
rtl/x86_64/sysutilp.inc

@@ -18,7 +18,7 @@
   This include contains cpu-specific routines
   This include contains cpu-specific routines
   ---------------------------------------------------------------------}
   ---------------------------------------------------------------------}
 
 
-function InterLockedDecrement (var Target: integer) : Integer; assembler;
+function InterLockedDecrement (var Target: longint) : longint; assembler;
 asm
 asm
         movl    $-1,%edx
         movl    $-1,%edx
         xchgl   %edx,%eax
         xchgl   %edx,%eax
@@ -28,7 +28,7 @@ asm
 end;
 end;
 
 
 
 
-function InterLockedIncrement (var Target: integer) : Integer; assembler;
+function InterLockedIncrement (var Target: longint) : longint; assembler;
 asm
 asm
         movl    $1,%edx
         movl    $1,%edx
         xchgl   %edx,%eax
         xchgl   %edx,%eax
@@ -38,14 +38,14 @@ asm
 end;
 end;
 
 
 
 
-function InterLockedExchange (var Target: integer;Source : integer) : Integer; assembler;
+function InterLockedExchange (var Target: longint;Source : longint) : longint; assembler;
 asm
 asm
         xchgl   (%rax),%edx
         xchgl   (%rax),%edx
         movl    %edx,%eax
         movl    %edx,%eax
 end;
 end;
 
 
 
 
-function InterLockedExchangeAdd (var Target: integer;Source : integer) : Integer; assembler;
+function InterLockedExchangeAdd (var Target: longint;Source : longint) : longint; assembler;
 asm
 asm
         xchgl   %eax,%edx
         xchgl   %eax,%edx
         lock
         lock
@@ -55,7 +55,10 @@ end;
 
 
 {
 {
   $Log$
   $Log$
-  Revision 1.1  2004-02-20 22:15:16  florian
+  Revision 1.2  2004-03-05 12:17:50  marco
+   * interlocked* changed to longints, including winapi. (which was a bug)
+
+  Revision 1.1  2004/02/20 22:15:16  florian
     + x86_64 dependend sysutils part added
     + x86_64 dependend sysutils part added
     * some 64 bit adaptions
     * some 64 bit adaptions
 }
 }