mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-06 11:10:17 +02:00
+ Use SIZEOF_PTHREAD_XXX macros for /usr/include/bits/pthreadtypes.h for MIPS cpu
git-svn-id: trunk@21790 -
This commit is contained in:
parent
c156b5a8b2
commit
5fb3d1398a
@ -30,6 +30,33 @@ and all three 32-bit systems returned completely identical types too
|
||||
introduction)
|
||||
}
|
||||
|
||||
{$ifdef MIPS}
|
||||
{$define USE_PTHREAD_SIZEOF}
|
||||
{$ifdef CPU64}
|
||||
const
|
||||
__SIZEOF_PTHREAD_ATTR_T = 56;
|
||||
__SIZEOF_PTHREAD_MUTEX_T = 40;
|
||||
__SIZEOF_PTHREAD_MUTEXATTR_T = 4;
|
||||
__SIZEOF_PTHREAD_COND_T = 48;
|
||||
__SIZEOF_PTHREAD_CONDATTR_T = 4;
|
||||
__SIZEOF_PTHREAD_RWLOCK_T = 56;
|
||||
__SIZEOF_PTHREAD_RWLOCKATTR_T = 8;
|
||||
__SIZEOF_PTHREAD_BARRIER_T = 32;
|
||||
__SIZEOF_PTHREAD_BARRIERATTR_T = 4;
|
||||
{$else : not CPU64, i.e. CPU32}
|
||||
const
|
||||
__SIZEOF_PTHREAD_ATTR_T = 36;
|
||||
__SIZEOF_PTHREAD_MUTEX_T = 24;
|
||||
__SIZEOF_PTHREAD_MUTEXATTR_T = 4;
|
||||
__SIZEOF_PTHREAD_COND_T = 48;
|
||||
__SIZEOF_PTHREAD_CONDATTR_T = 4;
|
||||
__SIZEOF_PTHREAD_RWLOCK_T = 32;
|
||||
__SIZEOF_PTHREAD_RWLOCKATTR_T = 8;
|
||||
__SIZEOF_PTHREAD_BARRIER_T = 20;
|
||||
__SIZEOF_PTHREAD_BARRIERATTR_T = 4;
|
||||
{$endif CPU32}
|
||||
{$endif MIPS}
|
||||
|
||||
{$I ctypes.inc}
|
||||
{$packrecords c}
|
||||
|
||||
@ -190,7 +217,26 @@ Type
|
||||
__sched_priority: cint;
|
||||
end;
|
||||
|
||||
{ MIPS32 size of unions
|
||||
__SIZEOF_PTHREAD_ATTR_T = 36;
|
||||
__SIZEOF_PTHREAD_MUTEX_T = 24;
|
||||
__SIZEOF_PTHREAD_MUTEXATTR_T = 4;
|
||||
__SIZEOF_PTHREAD_COND_T = 48;
|
||||
__SIZEOF_PTHREAD_CONDATTR_T = 4;
|
||||
__SIZEOF_PTHREAD_RWLOCK_T = 32;
|
||||
__SIZEOF_PTHREAD_RWLOCKATTR_T = 8;
|
||||
__SIZEOF_PTHREAD_BARRIER_T = 20;
|
||||
__SIZEOF_PTHREAD_BARRIERATTR_T = 4; }
|
||||
|
||||
pthread_attr_t = record
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
case byte of
|
||||
0 : (
|
||||
__size : array[0..__SIZEOF_PTHREAD_ATTR_T-1] of char;
|
||||
__align : clong;
|
||||
);
|
||||
1 : (
|
||||
{$endif}
|
||||
__detachstate: cint;
|
||||
__schedpolicy: cint;
|
||||
__schedparam: sched_param;
|
||||
@ -200,6 +246,9 @@ Type
|
||||
__stackaddr_set: cint;
|
||||
__stackaddr: pointer;
|
||||
__stacksize: size_t;
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
);
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
_pthread_fastlock = record
|
||||
@ -208,26 +257,70 @@ Type
|
||||
end;
|
||||
|
||||
pthread_mutex_t = record
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
case byte of
|
||||
0 : (
|
||||
__size : array[0..__SIZEOF_PTHREAD_MUTEX_T-1] of char;
|
||||
__align : clong;
|
||||
);
|
||||
1 : (
|
||||
{$endif}
|
||||
__m_reserved: cint;
|
||||
__m_count: cint;
|
||||
__m_owner: pointer;
|
||||
__m_kind: cint;
|
||||
__m_lock: _pthread_fastlock;
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
);
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
pthread_mutexattr_t = record
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
case byte of
|
||||
0 : (
|
||||
__size : array[0..__SIZEOF_PTHREAD_MUTEXATTR_T-1] of char;
|
||||
__align : clong;
|
||||
);
|
||||
1 : (
|
||||
{$endif}
|
||||
__mutexkind: cint;
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
);
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
pthread_cond_t = record
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
case byte of
|
||||
0 : (
|
||||
__size : array[0..__SIZEOF_PTHREAD_COND_T-1] of char;
|
||||
__align : clong;
|
||||
);
|
||||
1 : (
|
||||
{$endif}
|
||||
__c_lock: _pthread_fastlock;
|
||||
__c_waiting: pointer;
|
||||
__padding: array[0..48-1-sizeof(_pthread_fastlock)-sizeof(pointer)-sizeof(clonglong)] of byte;
|
||||
__align: clonglong;
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
);
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
pthread_condattr_t = record
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
case byte of
|
||||
0 : (
|
||||
__size : array[0..__SIZEOF_PTHREAD_CONATTR_T-1] of char;
|
||||
__align : clong;
|
||||
);
|
||||
1 : (
|
||||
{$endif}
|
||||
__dummy: cint;
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
);
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
pthread_key_t = cuint;
|
||||
@ -238,13 +331,35 @@ const
|
||||
type
|
||||
|
||||
pthread_rwlock_t = record // should be 56 for 64-bit, 32 bytes for 32-bit mantis #21552
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
case byte of
|
||||
0 : (
|
||||
__size : array[0..__SIZEOF_PTHREAD_RWLOCK_T-1] of char;
|
||||
__align : clong;
|
||||
);
|
||||
1 : (
|
||||
{$endif}
|
||||
case boolean of
|
||||
false : (_data : array[0..pthreadrwlocksize-1] of char);
|
||||
true : (align : clong);
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
);
|
||||
{$endif}
|
||||
end;
|
||||
pthread_rwlockattr_t = record
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
case byte of
|
||||
0 : (
|
||||
__size : array[0..__SIZEOF_PTHREAD_RWLOCKATTR_T-1] of char;
|
||||
__align : clong;
|
||||
);
|
||||
1 : (
|
||||
{$endif}
|
||||
__lockkind: cint;
|
||||
__pshared: cint;
|
||||
{$ifdef USE_PTHREAD_SIZEOF}
|
||||
);
|
||||
{$endif}
|
||||
end;
|
||||
|
||||
sem_t = record
|
||||
|
Loading…
Reference in New Issue
Block a user