HbbTv
17.9.0
Open source HBBTV engine
Main Page
Data Structures
Files
File List
Globals
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
npapiplugin
inc
nptypes.h
1
/* -*- Mode: C; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2
/* ***** BEGIN LICENSE BLOCK *****
3
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
4
*
5
* The contents of this file are subject to the Mozilla Public License Version
6
* 1.1 (the "License"); you may not use this file except in compliance with
7
* the License. You may obtain a copy of the License at
8
* http://www.mozilla.org/MPL/
9
*
10
* Software distributed under the License is distributed on an "AS IS" basis,
11
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12
* for the specific language governing rights and limitations under the
13
* License.
14
*
15
* The Original Code is mozilla.org code.
16
*
17
* The Initial Developer of the Original Code is
18
* mozilla.org.
19
* Portions created by the Initial Developer are Copyright (C) 2004
20
* the Initial Developer. All Rights Reserved.
21
*
22
* Contributor(s):
23
* Johnny Stenback <jst@mozilla.org> (Original author)
24
*
25
* Alternatively, the contents of this file may be used under the terms of
26
* either the GNU General Public License Version 2 or later (the "GPL"), or
27
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
28
* in which case the provisions of the GPL or the LGPL are applicable instead
29
* of those above. If you wish to allow use of your version of this file only
30
* under the terms of either the GPL or the LGPL, and not to allow others to
31
* use your version of this file under the terms of the MPL, indicate your
32
* decision by deleting the provisions above and replace them with the notice
33
* and other provisions required by the GPL or the LGPL. If you do not delete
34
* the provisions above, a recipient may use your version of this file under
35
* the terms of any one of the MPL, the GPL or the LGPL.
36
*
37
* ***** END LICENSE BLOCK ***** */
38
39
#ifndef nptypes_h_
40
#define nptypes_h_
41
42
/*
43
* Header file for ensuring that C99 types ([u]int32_t, [u]int64_t and bool) and
44
* true/false macros are available.
45
*/
46
47
#if (defined(WIN32) && !defined(__GNUC__)) || defined(OS2)
48
/*
49
* Win32 and OS/2 don't know C99, so define [u]int_16/32/64 here. The bool
50
* is predefined tho, both in C and C++.
51
*/
52
typedef
short
int16_t;
53
typedef
unsigned
short
uint16_t;
54
typedef
int
int32_t;
55
typedef
unsigned
int
uint32_t;
56
typedef
long
long
int64_t;
57
typedef
unsigned
long
long
uint64_t;
58
#elif defined(_AIX) || defined(__sun) || defined(__osf__) || defined(IRIX) || defined(HPUX)
59
/*
60
* AIX and SunOS ship a inttypes.h header that defines [u]int32_t,
61
* but not bool for C.
62
*/
63
#include <inttypes.h>
64
65
#ifndef __cplusplus
66
typedef
int
bool;
67
#define true 1
68
#define false 0
69
#endif
70
#elif defined(bsdi) || defined(FREEBSD) || defined(OPENBSD)
71
/*
72
* BSD/OS, FreeBSD, and OpenBSD ship sys/types.h that define int32_t and
73
* u_int32_t.
74
*/
75
#include <sys/types.h>
76
77
/*
78
* BSD/OS ships no header that defines uint32_t, nor bool (for C)
79
*/
80
#if defined(bsdi)
81
typedef
u_int32_t uint32_t;
82
typedef
u_int64_t uint64_t;
83
84
#if !defined(__cplusplus)
85
typedef
int
bool;
86
#define true 1
87
#define false 0
88
#endif
89
#else
90
/*
91
* FreeBSD and OpenBSD define uint32_t and bool.
92
*/
93
#include <inttypes.h>
94
#include <stdbool.h>
95
#endif
96
#elif defined(BEOS)
97
#include <inttypes.h>
98
#else
99
/*
100
* For those that ship a standard C99 stdint.h header file, include
101
* it. Can't do the same for stdbool.h tho, since some systems ship
102
* with a stdbool.h file that doesn't compile!
103
*/
104
#include <stdint.h>
105
106
#ifndef __cplusplus
107
#if !defined(__GNUC__) || (__GNUC__ > 2 || __GNUC_MINOR__ > 95)
108
#include <stdbool.h>
109
#else
110
/*
111
* GCC 2.91 can't deal with a typedef for bool, but a #define
112
* works.
113
*/
114
#define bool int
115
#define true 1
116
#define false 0
117
#endif
118
#endif
119
#endif
120
121
#endif
/* nptypes_h_ */
Generated on Tue Sep 19 2017 16:14:14 for HbbTv by
1.8.6