"Fossies" - the Fresh Open Source Software Archive

Member "unrar/rartypes.hpp" (4 May 2022, 1278 Bytes) of package /linux/misc/unrarsrc-6.1.7.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "rartypes.hpp" see the Fossies "Dox" file reference documentation.

    1 #ifndef _RAR_TYPES_
    2 #define _RAR_TYPES_
    3 
    4 #include <stdint.h>
    5 
    6 typedef uint8_t          byte;   // Unsigned 8 bits.
    7 typedef uint16_t         ushort; // Preferably 16 bits, but can be more.
    8 typedef unsigned int     uint;   // 32 bits or more.
    9 typedef uint32_t         uint32; // 32 bits exactly.
   10 typedef int32_t          int32;  // Signed 32 bits exactly.
   11 typedef uint64_t         uint64; // 64 bits exactly.
   12 typedef int64_t          int64;  // Signed 64 bits exactly.
   13 typedef 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