
/*
 * This file was automatically generated by 'scripts/Getsizes'. Do no edit!
 */

#ifndef _TW_DATASIZES_H
#define _TW_DATASIZES_H

#ifndef __asm

/* an unsigned integer type as wide as (void *) */
typedef size_t	topaque;

/*
 * the widest libTw type. At least as wide as topaque, uldat, unsigned long and,
 * if supported by the compiler and enabled, unsigned long long.
 */
typedef unsigned long	tany;

#endif /* __asm */

#define TW_SIZEOFBYTE         1
#define TW_SIZEOFUDAT         2
#define TW_SIZEOFULDAT        4
#define TW_SIZEOFTOPAQUE      8
#define TW_SIZEOFTANY         8

#define TW_SIZEOFINT          4

#define TW_MAXSBYTE    0x7F
#define TW_MAXBYTE     0xFF
#define TW_MAXDAT      0x7FFF
#define TW_MAXUDAT     0xFFFF
#define TW_MAXLDAT     0x7FFFFFFF
#define TW_MAXULDAT    0xFFFFFFFF
#define TW_MAXTOPAQUE  0xFFFFFFFFFFFFFFFF

/*
 * WARNING: if 'long long' support exists and is enabled,
 * TW_MAXTANY may be so large that C preprocessor cannot handle it
 */
#define TW_MAXTANY     0xFFFFFFFFFFFFFFFF

#define TW_MINSBYTE    0x80
#define TW_MINDAT      0x8000
#define TW_MINLDAT     0x80000000

#define TW_BYTE16      udat
#define TW_BYTE32      uldat

#endif /* _TW_DATASIZES_H */
