|
- /*
- * libpipi Pathetic image processing interface library
- * Copyright (c) 2008 Sam Hocevar <sam@zoy.org>
- * All Rights Reserved
- *
- * $Id$
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the Do What The Fuck You Want To
- * Public License, Version 2, as published by Sam Hocevar. See
- * http://sam.zoy.org/wtfpl/COPYING for more details.
- */
-
- /*
- * This file contains definitions for the C99 integer types.
- */
-
- #ifndef __PIPI_TYPES_H__
- #define __PIPI_TYPES_H__
-
- #ifndef PIPI_TYPES
- # define PIPI_TYPES @PIPI_TYPES@
- #endif
-
- /* mode 1: standard <stdint.h> header is present, just include it */
- #if PIPI_TYPES == 1
- # include <stdint.h>
- # include <unistd.h>
-
- /* mode 2: standard <inttypes.h> header is present, just include it */
- #elif PIPI_TYPES == 2
- # include <inttypes.h>
- # include <unistd.h>
-
- /* mode 3: <windows.h> indicates Win32, only (u)intptr_t is present
- * FIXME: Win64 probably doesn't work that way */
- #elif PIPI_TYPES == 3
- #include <windows.h>
-
- typedef signed char int8_t;
- typedef signed short int16_t;
- typedef signed long int int32_t;
- typedef signed long long int int64_t;
-
- typedef unsigned char uint8_t;
- typedef unsigned short uint16_t;
- typedef unsigned long int uint32_t;
- typedef unsigned long long int uint64_t;
-
- typedef int ssize_t;
- typedef unsigned int size_t;
-
- /* fallback: nothing is known, we assume the platform is 32-bit and
- * sizeof(long) == sizeof(void *). We don't typedef directly because we
- * have no idea what other typedefs have already been made. */
- #else
- typedef signed char _pipi_int8_t;
- typedef signed short _pipi_int16_t;
- typedef signed long int _pipi_int32_t;
- typedef signed long long int _pipi_int64_t;
- # undef int8_t
- # define int8_t _pipi_int8_t
- # undef int16_t
- # define int16_t _pipi_int16_t
- # undef int32_t
- # define int32_t _pipi_int32_t
- # undef int64_t
- # define int64_t _pipi_int64_t
-
- typedef unsigned char _pipi_uint8_t;
- typedef unsigned short _pipi_uint16_t;
- typedef unsigned long int _pipi_uint32_t;
- typedef unsigned long long int _pipi_uint64_t;
- # undef uint8_t
- # define uint8_t _pipi_uint8_t
- # undef uint16_t
- # define uint16_t _pipi_uint16_t
- # undef uint32_t
- # define uint32_t _pipi_uint32_t
- # undef uint64_t
- # define uint64_t _pipi_uint64_t
-
- typedef long int _pipi_intptr_t;
- typedef unsigned long int _pipi_uintptr_t;
- # undef intptr_t
- # define intptr_t _pipi_intptr_t
- # undef uintptr_t
- # define uintptr_t _pipi_uintptr_t
-
- typedef int _pipi_ssize_t;
- typedef unsigned int _pipi_size_t;
- # undef ssize_t
- # define ssize_t _pipi_ssize_t
- # undef size_t
- # define size_t _pipi_size_t
-
- #endif
-
- #endif /* __PIPI_TYPES_H__ */
|