File: types.h

package info (click to toggle)
sendmail 8.15.2-22%2Bdeb11u3
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 13,848 kB
  • sloc: ansic: 95,723; perl: 7,444; sh: 5,308; makefile: 831
file content (65 lines) | stat: -rw-r--r-- 1,709 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
 * Copyright (c) 2000-2001 Proofpoint, Inc. and its suppliers.
 *	All rights reserved.
 *
 * By using this file, you agree to the terms and conditions set
 * forth in the LICENSE file which can be found at the top level of
 * the sendmail distribution.
 *
 *	$Id: types.h,v 1.14 2013-11-22 20:51:32 ca Exp $
 */

/*
**  This header file defines standard integral types.
**  - It includes <sys/types.h>, and fixes portability problems that
**    exist on older Unix platforms.
**  - It defines LONGLONG_T and ULONGLONG_T, which are portable locutions
**    for 'long long' and 'unsigned long long'.
*/

#ifndef SM_TYPES_H
# define SM_TYPES_H

# include <sm/config.h>

/*
**  On BSD 4.2 systems, <sys/types.h> was not idempotent.
**  This problem is circumvented by replacing all occurrences
**  of <sys/types.h> with <sm/types.h>, which is idempotent.
*/

# include <sys/types.h>

/*
**  On some old Unix platforms, some of the standard types are missing.
**  We fix that here.
*/

# if !SM_CONF_UID_GID
#  define uid_t		int
#  define gid_t		int
# endif /* !SM_CONF_UID_GID */

# if !SM_CONF_SSIZE_T
#  define ssize_t	int
# endif /* !SM_CONF_SSIZE_T */

/*
**  Define LONGLONG_T and ULONGLONG_T, which are portable locutions
**  for 'long long' and 'unsigned long long' from the C 1999 standard.
*/

# if SM_CONF_LONGLONG
   typedef long long		LONGLONG_T;
   typedef unsigned long long	ULONGLONG_T;
# else /* SM_CONF_LONGLONG */
#  if SM_CONF_QUAD_T
     typedef quad_t		LONGLONG_T;
     typedef u_quad_t		ULONGLONG_T;
#  else /* SM_CONF_QUAD_T */
     typedef long		LONGLONG_T;
     typedef unsigned long	ULONGLONG_T;
#  endif /* SM_CONF_QUAD_T */
# endif /* SM_CONF_LONGLONG */

#endif /* ! SM_TYPES_H */