2001-10-28 07:26:15 +01:00
|
|
|
/* $Header: /cvsroot/pgsql/src/include/port/solaris.h,v 1.6 2001/10/28 06:26:08 momjian Exp $ */
|
2000-10-10 23:22:29 +02:00
|
|
|
|
|
|
|
#define HAS_TEST_AND_SET
|
|
|
|
typedef unsigned char slock_t;
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Sort this out for all operting systems some time. The __xxx
|
|
|
|
* symbols are defined on both GCC and Solaris CC, although GCC
|
|
|
|
* doesn't document them. The __xxx__ symbols are only on GCC.
|
|
|
|
*/
|
|
|
|
#if defined(__i386) && !defined(__i386__)
|
2001-03-22 05:01:46 +01:00
|
|
|
#define __i386__
|
2000-10-10 23:22:29 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(__sparc) && !defined(__sparc__)
|
2001-03-22 05:01:46 +01:00
|
|
|
#define __sparc__
|
2000-10-10 23:22:29 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(__i386__)
|
2001-03-22 05:01:46 +01:00
|
|
|
#include <sys/isa_defs.h>
|
2000-10-10 23:22:29 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef BIG_ENDIAN
|
|
|
|
#define BIG_ENDIAN 4321
|
|
|
|
#endif
|
|
|
|
#ifndef LITTLE_ENDIAN
|
|
|
|
#define LITTLE_ENDIAN 1234
|
|
|
|
#endif
|
|
|
|
#ifndef PDP_ENDIAN
|
|
|
|
#define PDP_ENDIAN 3412
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef BYTE_ORDER
|
2001-03-22 05:01:46 +01:00
|
|
|
#ifdef __sparc__
|
|
|
|
#define BYTE_ORDER BIG_ENDIAN
|
|
|
|
#endif
|
|
|
|
#ifdef __i386__
|
|
|
|
#define BYTE_ORDER LITTLE_ENDIAN
|
|
|
|
#endif
|
2000-10-10 23:22:29 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
|
2001-03-22 05:01:46 +01:00
|
|
|
#ifndef NAN
|
2000-10-10 23:22:29 +02:00
|
|
|
|
2001-03-22 05:01:46 +01:00
|
|
|
#if defined(__GNUC__) && defined(__i386__)
|
2000-10-10 23:22:29 +02:00
|
|
|
|
2001-03-22 05:01:46 +01:00
|
|
|
#ifndef __nan_bytes
|
|
|
|
#define __nan_bytes { 0, 0, 0, 0, 0, 0, 0xf8, 0x7f }
|
|
|
|
#endif
|
2000-10-10 23:22:29 +02:00
|
|
|
|
2001-03-22 05:01:46 +01:00
|
|
|
#define NAN \
|
2000-10-10 23:22:29 +02:00
|
|
|
(__extension__ ((union { unsigned char __c[8]; double __d; }) \
|
|
|
|
{ __nan_bytes }).__d)
|
|
|
|
|
2001-03-22 05:01:46 +01:00
|
|
|
#else
|
|
|
|
/* not GNUC and i386 */
|
2000-10-10 23:22:29 +02:00
|
|
|
|
2001-03-22 05:01:46 +01:00
|
|
|
#define NAN (0.0/0.0)
|
|
|
|
#endif /* GCC. */
|
2001-10-28 07:26:15 +01:00
|
|
|
|
2000-10-10 23:22:29 +02:00
|
|
|
#endif /* not NAN */
|