/* * 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 , 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 /* ** On BSD 4.2 systems, was not idempotent. ** This problem is circumvented by replacing all occurrences ** of with , which is idempotent. */ # include /* ** 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 # if !SM_CONF_SSIZE_T # define ssize_t int # endif /* ** 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 */