1{
2    This file is part of the Free Pascal run time library.
3    Copyright (c) 2001 by Free Pascal development team
4
5    Basic types for C interfacing. Check the 64-bit defines.
6
7    See the file COPYING.FPC, included in this distribution,
8    for details about the copyright.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
14 **********************************************************************}
15
16{***********************************************************************}
17{                       POSIX TYPE DEFINITIONS                          }
18{***********************************************************************}
19
20type
21  { the following type definitions are compiler dependant }
22  { and system dependant                                  }
23
24  cint8                  = shortint;           pcint8                 = ^cint8;
25  cuint8                 = byte;               pcuint8                = ^cuint8;
26  cchar                  = cint8;              pcchar                 = ^cchar;
27  cschar                 = cint8;              pcschar                = ^cschar;
28  cuchar                 = cuint8;             pcuchar                = ^cuchar;
29
30  cint16                 = smallint;           pcint16                = ^cint16;
31  cuint16                = word;               pcuint16               = ^cuint16;
32  cshort                 = cint16;             pcshort                = ^cshort;
33  csshort                = cint16;             pcsshort               = ^csshort;
34  cushort                = cuint16;            pcushort               = ^cushort;
35
36  cint32                 = longint;            pcint32                = ^cint32;
37  cuint32                = longword;           pcuint32               = ^cuint32;
38  cint                   = cint32;             pcint                  = ^cint;              { minimum range is : 32-bit    }
39  csint                  = cint32;             pcsint                 = ^csint;             { minimum range is : 32-bit    }
40  cuint                  = cuint32;            pcuint                 = ^cuint;             { minimum range is : 32-bit    }
41  csigned                = cint;               pcsigned               = ^csigned;
42  cunsigned              = cuint;              pcunsigned             = ^cunsigned;
43
44  cint64                 = int64;              pcint64                = ^cint64;
45  cuint64                = qword;              pcuint64               = ^cuint64;
46  clonglong              = cint64;             pclonglong             = ^clonglong;
47  cslonglong             = cint64;             pcslonglong            = ^cslonglong;
48  culonglong             = cuint64;            pculonglong            = ^culonglong;
49
50  cbool                  = longbool;           pcbool                 = ^cbool;
51
52{$ifdef cpu64}
53  clong                  = int64;              pclong                 = ^clong;
54  cslong                 = int64;              pcslong                = ^cslong;
55  culong                 = qword;              pculong                = ^culong;
56{$else}
57  clong                  = longint;            pclong                 = ^clong;
58  cslong                 = longint;            pcslong                = ^cslong;
59  culong                 = cardinal;           pculong                = ^culong;
60{$endif}
61
62{$ifndef FPUNONE}
63  cfloat                 = single;             pcfloat                = ^cfloat;
64  cdouble                = double;             pcdouble               = ^cdouble;
65  clongdouble            = extended;           pclongdouble           = ^clongdouble;
66{$endif}
67
68// csize_t is defined in the operatingsystem dependant ptypes.inc
69// csize_t               = ptruint;            pcsize_t               = pptruint;
70