blob: 6c62301b222b47f28948816621359857e291a262 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
/* File: h-type.h */
#ifndef INCLUDED_H_TYPE_H
#define INCLUDED_H_TYPE_H
#ifdef __cplusplus
extern "C" {
#endif
/*
* Basic "types".
*
* Note the attempt to make all basic types have 4 letters.
* This improves readibility and standardizes the code.
*
* Likewise, all complex types are at least 4 letters.
* Thus, almost every three letter word is a legal variable.
* But beware of certain reserved words ('for' and 'if' and 'do').
*
* Note that the type used in structures for bit flags should be unsigned int.
* As long as these bit flags are sequential, they will be space smart.
*
* Note that on some machines, apparently "signed char" is illegal.
*
* It must be true that char/byte takes exactly 1 byte
* It must be true that sind/uind takes exactly 2 bytes
* It must be true that sbig/ubig takes exactly 4 bytes
*
* On Sparc's, a sint takes 4 bytes (2 is legal)
* On Sparc's, a long takes 4 bytes (8 is legal)
* On Sparc's, a real takes 8 bytes (4 is legal)
*
* Note that some files have already been included by "h-include.h"
* These include <stdio.h> and <sys/types>, which define some types
*/
/* Error codes for function return values */
/* Success = 0, Failure = -N, Problem = +N */
typedef int errr;
/* Note that unsigned values can cause math problems */
/* An unsigned byte of memory */
typedef unsigned char byte;
/* Note that a bool is smaller than a full "int" */
/* Simple True/False type */
typedef char bool_;
/* Signed/Unsigned 16 bit value */
typedef signed short s16b;
typedef unsigned short u16b;
#define FMTs16b "%hd"
#define FMTu16b "%hu"
/* Signed/Unsigned 32 bit value */
#ifdef L64 /* 64 bit longs */
typedef signed int s32b;
typedef unsigned int u32b;
#define FMTs32b "%d"
#define FMTu32b "%u"
#else
typedef signed long s32b;
typedef unsigned long u32b;
#define FMTs32b "%ld"
#define FMTu32b "%lu"
#endif
#ifdef __cplusplus
} // extern "C"
#endif
#endif
|