Coherent4.2.10/include/common/_size.h

/* (-lgl
 *	Coherent 386 release 4.2
 *	Copyright (c) 1982, 1993 by Mark Williams Company.
 *	All rights reserved. May not be copied without permission.
 *	For copying permission and licensing info, write licensing@mwc.com
 -lgl) */

#ifndef	__COMMON__SIZE_H__
#define	__COMMON__SIZE_H__

/*
 * This internal header file is intended as the sole point of definition for
 * the ISO C data type "size_t".  To support cross-compilation environments,
 * this header file uses a variety of feature tests to avoid conflict with
 * definitions provided elsewhere by a translator's headers.
 *
 * To support efficiency hacks where the fundamental type on which a "size_t"
 * is based needs to be known at preprocessing time, we also supply that data
 * from the underlying definition.  Caveat utilitor.
 */

#include <common/feature.h>
#include <common/__size.h>

#if	__BORLANDC__ || __COHERENT__

/*
 * Note that Borland want to use _SIZE_T to prevent multiple definition of
 * "size_t", which is fine by us.  We overload this for our own purposes by
 * giving it a non-empty definition, however.
 */

# ifndef	_SIZE_T
typedef	__size_t	size_t;
# else
#  undef	_SIZE_T
# endif

#define	_SIZE_T		___SIZE_T

#elif	__GNUDOS__

/*
 * For DJCC v1.09, you will have to modify <stddef.h> to prevent multiple
 * definitions of "size_t". The headers in DJCC are totally hosed.  In
 * addition, GCC mandates "unsigned long" for reasons connected to built-in
 * versions of library functions.
 */

# ifndef	_SIZE_T
typedef	__size_t	size_t;
# else
#  undef	_SIZE_T
# endif

#define	_SIZE_T		___SIZE_T

#else

#error	size_t not known for this system

#endif

#endif	/* ! defined (__COMMON__SIZE_H__) */