1//===- MsgPack.def - MessagePack definitions --------------------*- C++ -*-===// 2// 3// The LLVM Compiler Infrastructure 4// 5// This file is distributed under the University of Illinois Open Source 6// License. See LICENSE.TXT for details. 7// 8//===----------------------------------------------------------------------===// 9/// 10/// \file 11/// Macros for running through MessagePack enumerators. 12/// 13//===----------------------------------------------------------------------===// 14 15#if !( \ 16 defined HANDLE_MP_FIRST_BYTE || defined HANDLE_MP_FIX_BITS || \ 17 defined HANDLE_MP_FIX_BITS_MASK || defined HANDLE_MP_FIX_MAX || \ 18 defined HANDLE_MP_FIX_LEN || defined HANDLE_MP_FIX_MIN) 19#error "Missing macro definition of HANDLE_MP*" 20#endif 21 22#ifndef HANDLE_MP_FIRST_BYTE 23#define HANDLE_MP_FIRST_BYTE(ID, NAME) 24#endif 25 26#ifndef HANDLE_MP_FIX_BITS 27#define HANDLE_MP_FIX_BITS(ID, NAME) 28#endif 29 30#ifndef HANDLE_MP_FIX_BITS_MASK 31#define HANDLE_MP_FIX_BITS_MASK(ID, NAME) 32#endif 33 34#ifndef HANDLE_MP_FIX_MAX 35#define HANDLE_MP_FIX_MAX(ID, NAME) 36#endif 37 38#ifndef HANDLE_MP_FIX_LEN 39#define HANDLE_MP_FIX_LEN(ID, NAME) 40#endif 41 42#ifndef HANDLE_MP_FIX_MIN 43#define HANDLE_MP_FIX_MIN(ID, NAME) 44#endif 45 46HANDLE_MP_FIRST_BYTE(0xc0, Nil) 47HANDLE_MP_FIRST_BYTE(0xc2, False) 48HANDLE_MP_FIRST_BYTE(0xc3, True) 49HANDLE_MP_FIRST_BYTE(0xc4, Bin8) 50HANDLE_MP_FIRST_BYTE(0xc5, Bin16) 51HANDLE_MP_FIRST_BYTE(0xc6, Bin32) 52HANDLE_MP_FIRST_BYTE(0xc7, Ext8) 53HANDLE_MP_FIRST_BYTE(0xc8, Ext16) 54HANDLE_MP_FIRST_BYTE(0xc9, Ext32) 55HANDLE_MP_FIRST_BYTE(0xca, Float32) 56HANDLE_MP_FIRST_BYTE(0xcb, Float64) 57HANDLE_MP_FIRST_BYTE(0xcc, UInt8) 58HANDLE_MP_FIRST_BYTE(0xcd, UInt16) 59HANDLE_MP_FIRST_BYTE(0xce, UInt32) 60HANDLE_MP_FIRST_BYTE(0xcf, UInt64) 61HANDLE_MP_FIRST_BYTE(0xd0, Int8) 62HANDLE_MP_FIRST_BYTE(0xd1, Int16) 63HANDLE_MP_FIRST_BYTE(0xd2, Int32) 64HANDLE_MP_FIRST_BYTE(0xd3, Int64) 65HANDLE_MP_FIRST_BYTE(0xd4, FixExt1) 66HANDLE_MP_FIRST_BYTE(0xd5, FixExt2) 67HANDLE_MP_FIRST_BYTE(0xd6, FixExt4) 68HANDLE_MP_FIRST_BYTE(0xd7, FixExt8) 69HANDLE_MP_FIRST_BYTE(0xd8, FixExt16) 70HANDLE_MP_FIRST_BYTE(0xd9, Str8) 71HANDLE_MP_FIRST_BYTE(0xda, Str16) 72HANDLE_MP_FIRST_BYTE(0xdb, Str32) 73HANDLE_MP_FIRST_BYTE(0xdc, Array16) 74HANDLE_MP_FIRST_BYTE(0xdd, Array32) 75HANDLE_MP_FIRST_BYTE(0xde, Map16) 76HANDLE_MP_FIRST_BYTE(0xdf, Map32) 77 78HANDLE_MP_FIX_BITS(0x00, PositiveInt) 79HANDLE_MP_FIX_BITS(0x80, Map) 80HANDLE_MP_FIX_BITS(0x90, Array) 81HANDLE_MP_FIX_BITS(0xa0, String) 82HANDLE_MP_FIX_BITS(0xe0, NegativeInt) 83 84HANDLE_MP_FIX_BITS_MASK(0x80, PositiveInt) 85HANDLE_MP_FIX_BITS_MASK(0xf0, Map) 86HANDLE_MP_FIX_BITS_MASK(0xf0, Array) 87HANDLE_MP_FIX_BITS_MASK(0xe0, String) 88HANDLE_MP_FIX_BITS_MASK(0xe0, NegativeInt) 89 90HANDLE_MP_FIX_MAX(0x7f, PositiveInt) 91HANDLE_MP_FIX_MAX(0x0f, Map) 92HANDLE_MP_FIX_MAX(0x0f, Array) 93HANDLE_MP_FIX_MAX(0x1f, String) 94 95HANDLE_MP_FIX_LEN(0x01, Ext1) 96HANDLE_MP_FIX_LEN(0x02, Ext2) 97HANDLE_MP_FIX_LEN(0x04, Ext4) 98HANDLE_MP_FIX_LEN(0x08, Ext8) 99HANDLE_MP_FIX_LEN(0x10, Ext16) 100 101HANDLE_MP_FIX_MIN(-0x20, NegativeInt) 102 103#undef HANDLE_MP_FIRST_BYTE 104#undef HANDLE_MP_FIX_BITS 105#undef HANDLE_MP_FIX_BITS_MASK 106#undef HANDLE_MP_FIX_MAX 107#undef HANDLE_MP_FIX_LEN 108#undef HANDLE_MP_FIX_MIN 109