/*
 * Copyright (c) 2000-2003, 2005 Sendmail, 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.8 2005/06/16 00:09:35 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 1

#include "sm/generic.h"

#if HAVE_SYS_TYPES_H
# include <sys/types.h>
#endif

/* timeout interval, may need to be long, must be signed */
typedef int	sm_intvl_T;

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

#if (SIZEOF_LONG_LONG > 0)
typedef long long		longlong_T;
typedef unsigned long long	ulonglong_T;
#else /* (SIZEOF_LONG_LONG > 0) */
# if (SIZEOF_QUAD_T > 0)
typedef quad_t		longlong_T;
typedef u_quad_t	ulonglong_T;
# else
typedef long		longlong_T;
typedef unsigned long	ulonglong_T;
# endif
#endif /* (SIZEOF_LONG_LONG > 0) */

#endif /* ! SM_TYPES_H */


syntax highlighted by Code2HTML, v. 0.9.1