xref: /titanic_41/usr/src/cmd/sendmail/include/sm/types.h (revision 7c478bd95313f5f23a4c958a745db2134aa03244)
1 /*
2  * Copyright (c) 2000-2001 Sendmail, Inc. and its suppliers.
3  *	All rights reserved.
4  *
5  * By using this file, you agree to the terms and conditions set
6  * forth in the LICENSE file which can be found at the top level of
7  * the sendmail distribution.
8  *
9  *	$Id: types.h,v 1.13 2001/04/03 01:53:01 gshapiro Exp $
10  */
11 
12 #pragma ident	"%Z%%M%	%I%	%E% SMI"
13 
14 /*
15 **  This header file defines standard integral types.
16 **  - It includes <sys/types.h>, and fixes portability problems that
17 **    exist on older Unix platforms.
18 **  - It defines LONGLONG_T and ULONGLONG_T, which are portable locutions
19 **    for 'long long' and 'unsigned long long'.
20 */
21 
22 #ifndef SM_TYPES_H
23 # define SM_TYPES_H
24 
25 # include <sm/config.h>
26 
27 /*
28 **  On BSD 4.2 systems, <sys/types.h> was not idempotent.
29 **  This problem is circumvented by replacing all occurrences
30 **  of <sys/types.h> with <sm/types.h>, which is idempotent.
31 */
32 
33 # include <sys/types.h>
34 
35 /*
36 **  On some old Unix platforms, some of the standard types are missing.
37 **  We fix that here.
38 */
39 
40 # if !SM_CONF_UID_GID
41 #  define uid_t		int
42 #  define gid_t		int
43 # endif /* !SM_CONF_UID_GID */
44 
45 # if !SM_CONF_SSIZE_T
46 #  define ssize_t	int
47 # endif /* !SM_CONF_SSIZE_T */
48 
49 /*
50 **  Define LONGLONG_T and ULONGLONG_T, which are portable locutions
51 **  for 'long long' and 'unsigned long long' from the C 1999 standard.
52 */
53 
54 # if SM_CONF_LONGLONG
55    typedef long long		LONGLONG_T;
56    typedef unsigned long long	ULONGLONG_T;
57 # else /* SM_CONF_LONGLONG */
58 #  if SM_CONF_QUAD_T
59      typedef quad_t		LONGLONG_T;
60      typedef u_quad_t		ULONGLONG_T;
61 #  else /* SM_CONF_QUAD_T */
62      typedef long		LONGLONG_T;
63      typedef unsigned long	ULONGLONG_T;
64 #  endif /* SM_CONF_QUAD_T */
65 # endif /* SM_CONF_LONGLONG */
66 
67 #endif /* ! SM_TYPES_H */
68