1 /*
2  * MessagePack unpacking routine template
3  *
4  * Copyright (C) 2008-2010 FURUHASHI Sadayuki
5  *
6  *    Licensed under the Apache License, Version 2.0 (the "License");
7  *    you may not use this file except in compliance with the License.
8  *    You may obtain a copy of the License at
9  *
10  *        http://www.apache.org/licenses/LICENSE-2.0
11  *
12  *    Unless required by applicable law or agreed to in writing, software
13  *    distributed under the License is distributed on an "AS IS" BASIS,
14  *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
N_LOWMC(lowmc_key_t const * lowmc_key,mzd_local_t const * p,recorded_state_t * state)15  *    See the License for the specific language governing permissions and
16  *    limitations under the License.
17  */
18 #ifndef MSGPACK_UNPACK_DEFINE_H__
19 #define MSGPACK_UNPACK_DEFINE_H__
20 
21 #include "msgpack/sysdep.h"
22 #include <stdlib.h>
23 #include <string.h>
24 #include <assert.h>
25 #include <stdio.h>
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 
32 #ifndef MSGPACK_EMBED_STACK_SIZE
33 #define MSGPACK_EMBED_STACK_SIZE 32
34 #endif
35 
36 
37 // CS is first byte & 0x1f
38 typedef enum {
39     CS_HEADER            = 0x00,  // nil
40 
41     //CS_                = 0x01,
42     //CS_                = 0x02,  // false
43     //CS_                = 0x03,  // true
44 
45     CS_BIN_8             = 0x04,
46     CS_BIN_16            = 0x05,
47     CS_BIN_32            = 0x06,
48 
49     CS_EXT_8             = 0x07,
50     CS_EXT_16            = 0x08,
51     CS_EXT_32            = 0x09,
52 
53     CS_FLOAT             = 0x0a,
54     CS_DOUBLE            = 0x0b,
55     CS_UINT_8            = 0x0c,
56     CS_UINT_16           = 0x0d,
57     CS_UINT_32           = 0x0e,
58     CS_UINT_64           = 0x0f,
59     CS_INT_8             = 0x10,
60     CS_INT_16            = 0x11,
61     CS_INT_32            = 0x12,
62     CS_INT_64            = 0x13,
63 
64     //CS_FIXEXT1           = 0x14,
65     //CS_FIXEXT2           = 0x15,
66     //CS_FIXEXT4           = 0x16,
67     //CS_FIXEXT8           = 0x17,
68     //CS_FIXEXT16          = 0x18,
69 
70     CS_RAW_8             = 0x19,
71     CS_RAW_16            = 0x1a,
72     CS_RAW_32            = 0x1b,
73     CS_ARRAY_16          = 0x1c,
74     CS_ARRAY_32          = 0x1d,
75     CS_MAP_16            = 0x1e,
76     CS_MAP_32            = 0x1f,
77 
78     ACS_RAW_VALUE,
79     ACS_BIN_VALUE,
80     ACS_EXT_VALUE,
81 } msgpack_unpack_state;
82 
83 
84 typedef enum {
85     CT_ARRAY_ITEM,
86     CT_MAP_KEY,
87     CT_MAP_VALUE,
88 } msgpack_container_type;
89 
90 
91 #ifdef __cplusplus
92 }
93 #endif
94 
95 #endif /* msgpack/unpack_define.h */
96