unrarsrc  6.1.7
About: unrar extracts, views and tests the contents of archives created with the RAR archiver.
  Fossies Dox: unrarsrc-6.1.7.tar.gz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

rartypes.hpp
Go to the documentation of this file.
1#ifndef _RAR_TYPES_
2#define _RAR_TYPES_
3
4#include <stdint.h>
5
6typedef uint8_t byte; // Unsigned 8 bits.
7typedef uint16_t ushort; // Preferably 16 bits, but can be more.
8typedef unsigned int uint; // 32 bits or more.
9typedef uint32_t uint32; // 32 bits exactly.
10typedef int32_t int32; // Signed 32 bits exactly.
11typedef uint64_t uint64; // 64 bits exactly.
12typedef int64_t int64; // Signed 64 bits exactly.
13typedef wchar_t wchar; // Unicode character
14
15// Get lowest 16 bits.
16#define GET_SHORT16(x) (sizeof(ushort)==2 ? (ushort)(x):((x)&0xffff))
17
18// Make 64 bit integer from two 32 bit.
19#define INT32TO64(high,low) ((((uint64)(high))<<32)+((uint64)low))
20
21// Maximum int64 value.
22#define MAX_INT64 int64(INT32TO64(0x7fffffff,0xffffffff))
23
24// Special int64 value, large enough to never be found in real life
25// and small enough to fit to both signed and unsigned 64-bit ints.
26// We use it in situations, when we need to indicate that parameter
27// is not defined and probably should be calculated inside of function.
28// Lower part is intentionally 0x7fffffff, not 0xffffffff, to make it
29// compatible with 32 bit int64 if 64 bit type is not supported.
30#define INT64NDF INT32TO64(0x7fffffff,0x7fffffff)
31
32#endif
wchar_t wchar
Definition: rartypes.hpp:13
int64_t int64
Definition: rartypes.hpp:12
unsigned int uint
Definition: rartypes.hpp:8
uint16_t ushort
Definition: rartypes.hpp:7
int32_t int32
Definition: rartypes.hpp:10
uint8_t byte
Definition: rartypes.hpp:6
uint64_t uint64
Definition: rartypes.hpp:11
uint32_t uint32
Definition: rartypes.hpp:9