cachepc-qemu

Fork of AMDESE/qemu with changes for cachepc side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-qemu
Log | Files | Refs | Submodules | LICENSE | sfeed.txt

json-parser-int.h (1381B)


      1/*
      2 * JSON Parser
      3 *
      4 * Copyright IBM, Corp. 2009
      5 *
      6 * Authors:
      7 *  Anthony Liguori   <aliguori@us.ibm.com>
      8 *
      9 * This work is licensed under the terms of the GNU LGPL, version 2.1 or later.
     10 * See the COPYING.LIB file in the top-level directory.
     11 *
     12 */
     13
     14#ifndef JSON_PARSER_INT_H
     15#define JSON_PARSER_INT_H
     16
     17#include "qapi/qmp/json-parser.h"
     18
     19typedef enum json_token_type {
     20    JSON_ERROR = 0,             /* must be zero, see json_lexer[] */
     21    /* Gap for lexer states */
     22    JSON_LCURLY = 100,
     23    JSON_MIN = JSON_LCURLY,
     24    JSON_RCURLY,
     25    JSON_LSQUARE,
     26    JSON_RSQUARE,
     27    JSON_COLON,
     28    JSON_COMMA,
     29    JSON_INTEGER,
     30    JSON_FLOAT,
     31    JSON_KEYWORD,
     32    JSON_STRING,
     33    JSON_INTERP,
     34    JSON_END_OF_INPUT,
     35    JSON_MAX = JSON_END_OF_INPUT
     36} JSONTokenType;
     37
     38typedef struct JSONToken JSONToken;
     39
     40/* json-lexer.c */
     41void json_lexer_init(JSONLexer *lexer, bool enable_interpolation);
     42void json_lexer_feed(JSONLexer *lexer, const char *buffer, size_t size);
     43void json_lexer_flush(JSONLexer *lexer);
     44void json_lexer_destroy(JSONLexer *lexer);
     45
     46/* json-streamer.c */
     47void json_message_process_token(JSONLexer *lexer, GString *input,
     48                                JSONTokenType type, int x, int y);
     49
     50/* json-parser.c */
     51JSONToken *json_token(JSONTokenType type, int x, int y, GString *tokstr);
     52QObject *json_parser_parse(GQueue *tokens, va_list *ap, Error **errp);
     53
     54#endif