/***************************************************************************** * common.h: common definitions * Collection of useful common types and macros definitions ***************************************************************************** * Copyright (C) 1998, 1999, 2000 VideoLAN * $Id: common.h,v 1.6 2003/01/29 20:55:26 sam Exp $ * * Authors: Samuel Hocevar * Vincent Seguin * Gildas Bazin * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. *****************************************************************************/ /***************************************************************************** * Basic types definitions *****************************************************************************/ #if defined( HAVE_STDINT_H ) # include #elif defined( HAVE_INTTYPES_H ) # include #elif defined( SYS_CYGWIN ) # include /* Cygwin only defines half of these... */ typedef u_int8_t uint8_t; typedef u_int16_t uint16_t; typedef u_int32_t uint32_t; typedef u_int64_t uint64_t; #else /* Fallback types (very x86-centric, sorry) */ typedef unsigned char uint8_t; typedef signed char int8_t; typedef unsigned short uint16_t; typedef signed short int16_t; typedef unsigned int uint32_t; typedef signed int int32_t; # if defined( _MSC_VER ) \ || defined( UNDER_CE ) \ || ( defined( WIN32 ) && !defined( __MINGW32__ ) ) typedef unsigned __int64 uint64_t; typedef signed __int64 int64_t; # else typedef unsigned long long uint64_t; typedef signed long long int64_t; # endif #endif typedef uint8_t byte_t; /* Boolean type */ typedef int dvdbool_t; #if defined( WIN32 ) /* Needed by libdvdread */ typedef int ssize_t; /* several type definitions */ # if defined( __MINGW32__ ) # if !defined( _OFF_T_ ) typedef long long _off_t; typedef _off_t off_t; # define _OFF_T_ # else # define off_t long long # endif # endif # if defined( _MSC_VER ) # if !defined( _OFF_T_DEFINED ) typedef __int64 off_t; # define _OFF_T_DEFINED # else # define off_t __int64 # endif # define stat _stati64 # endif /* These two are not defined in mingw32 (bug?) */ # ifndef snprintf # define snprintf _snprintf # endif # ifndef vsnprintf # define vsnprintf _vsnprintf # endif #endif