mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 03:48:07 +02:00
* Do not compile pointer overloads of atomic operations for MS-DOS/i8086
This commit is contained in:
parent
cc339fd3b8
commit
6e5c4667cd
@ -2306,6 +2306,8 @@ end;
|
||||
|
||||
{ Pointer overloads }
|
||||
|
||||
{$ifndef FPC_SYSTEM_DISABLE_INTERLOCK_POINTER_OVERLOAD}
|
||||
|
||||
function AtomicIncrement (var Target: pointer) : pointer; {$ifdef SYSTEMINLINE}inline{$endif};
|
||||
|
||||
begin
|
||||
@ -2365,6 +2367,8 @@ begin
|
||||
{$ENDIF}
|
||||
end;
|
||||
|
||||
{$endif FPC_SYSTEM_DISABLE_INTERLOCK_POINTER_OVERLOAD}
|
||||
|
||||
function AtomicIncrement (var Target: Cardinal) : Cardinal; {$ifdef SYSTEMINLINE}inline{$endif};
|
||||
|
||||
begin
|
||||
|
@ -1562,6 +1562,10 @@ Function GetThreadID:TThreadID;{$ifdef SYSTEMINLINE}inline;{$endif}
|
||||
{$define FPC_HAS_EXPLICIT_INTERLOCKED_POINTER}
|
||||
{$endif}
|
||||
|
||||
{$ifdef CPUI8086}
|
||||
{$define FPC_SYSTEM_DISABLE_INTERLOCK_POINTER_OVERLOAD}
|
||||
{$endif CPUI806}
|
||||
|
||||
{$ifdef cpu16}
|
||||
function AtomicIncrement (var Target: smallint) : smallint; {$ifdef SYSTEMINLINE}inline{$endif};
|
||||
function AtomicDecrement (var Target: smallint) : smallint; {$ifdef SYSTEMINLINE}inline{$endif};
|
||||
@ -1593,7 +1597,11 @@ function InterlockedExchange64 (var Target: int64;Source : int64) : int64; publi
|
||||
function InterlockedExchangeAdd64 (var Target: int64;Source : int64) : int64; public name 'FPC_INTERLOCKEDEXCHANGEADD64';
|
||||
function InterlockedCompareExchange64(var Target: int64; NewValue: int64; Comperand: int64): int64; public name 'FPC_INTERLOCKEDCOMPAREEXCHANGE64';
|
||||
{$endif cpu64}
|
||||
|
||||
{ Pointer overloads }
|
||||
|
||||
{$ifndef FPC_SYSTEM_DISABLE_INTERLOCK_POINTER_OVERLOAD}
|
||||
|
||||
function AtomicIncrement (var Target: pointer) : pointer; {$ifdef SYSTEMINLINE}inline{$endif};
|
||||
function AtomicDecrement (var Target: pointer) : pointer; {$ifdef SYSTEMINLINE}inline{$endif};
|
||||
function AtomicCmpExchange(var Target: pointer; NewValue, Comperand: pointer): pointer; {$ifdef SYSTEMINLINE}inline{$endif};
|
||||
@ -1609,6 +1617,7 @@ function InterlockedCompareExchange(var Target: Pointer; NewValue: Pointer; Comp
|
||||
{ Note: in case of FPC_SYSTEM_HAS_EXPLICIT_INTERLOCKED_POINTER this is an alias for
|
||||
InterlockedCompareExchange (this doesn't work with inline however) }
|
||||
function InterlockedCompareExchangePointer(var Target: Pointer; NewValue: Pointer; Comperand: Pointer): Pointer; {$ifndef FPC_INTERLOCKED_POINTER_INLINE}inline;{$else}external name 'FPC_INTERLOCKEDEXCHANGEPOINTER';{$endif}
|
||||
}
|
||||
{$elseif defined(cpu64)}
|
||||
function InterlockedIncrement (var Target: Pointer) : Pointer; external name 'FPC_INTERLOCKEDINCREMENT64';
|
||||
function InterlockedDecrement (var Target: Pointer) : Pointer; external name 'FPC_INTERLOCKEDDECREMENT64';
|
||||
@ -1624,6 +1633,9 @@ function InterlockedExchangeAdd (var Target: Pointer;Source : Pointer) : Pointer
|
||||
function InterlockedCompareExchange(var Target: Pointer; NewValue: Pointer; Comperand: Pointer): Pointer; external name 'FPC_INTERLOCKEDCOMPAREEXCHANGE';
|
||||
function InterlockedCompareExchangePointer(var Target: Pointer; NewValue: Pointer; Comperand: Pointer): Pointer; external name 'FPC_INTERLOCKEDCOMPAREEXCHANGE';
|
||||
{$endif FPC_HAS_EXPLICIT_INTERLOCKED_POINTER / CPU64}
|
||||
|
||||
{$endif FPC_SYSTEM_DISABLE_INTERLOCK_POINTER_OVERLOAD}
|
||||
|
||||
{ unsigned overloads }
|
||||
{$ifdef cpu16}
|
||||
function AtomicIncrement (var Target: word) : word; {$ifdef SYSTEMINLINE}inline{$endif};
|
||||
|
Loading…
Reference in New Issue
Block a user