Linux-libre 3.18.37-gnu
[librecmc/linux-libre.git] / drivers / staging / unisys / visorchipset / parser.h
1 /* parser.h
2  *
3  * Copyright (C) 2010 - 2013 UNISYS CORPORATION
4  * All rights reserved.
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or (at
9  * your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or
14  * NON INFRINGEMENT.  See the GNU General Public License for more
15  * details.
16  */
17
18 #ifndef __PARSER_H__
19 #define __PARSER_H__
20
21 #include <linux/uuid.h>
22
23 #include "uniklog.h"
24 #include "timskmod.h"
25 #include "channel.h"
26
27 typedef enum {
28         PARSERSTRING_INITIATOR,
29         PARSERSTRING_TARGET,
30         PARSERSTRING_CONNECTION,
31         PARSERSTRING_NAME,
32 } PARSER_WHICH_STRING;
33
34 typedef struct PARSER_CONTEXT_Tag PARSER_CONTEXT;
35
36 PARSER_CONTEXT *parser_init(u64 addr, u32 bytes, BOOL isLocal, BOOL *tryAgain);
37 PARSER_CONTEXT *parser_init_byteStream(u64 addr, u32 bytes, BOOL isLocal,
38                                        BOOL *tryAgain);
39 void parser_param_start(PARSER_CONTEXT *ctx, PARSER_WHICH_STRING which_string);
40 void *parser_param_get(PARSER_CONTEXT *ctx, char *nam, int namesize);
41 void *parser_string_get(PARSER_CONTEXT *ctx);
42 uuid_le parser_id_get(PARSER_CONTEXT *ctx);
43 char *parser_simpleString_get(PARSER_CONTEXT *ctx);
44 void *parser_byteStream_get(PARSER_CONTEXT *ctx, ulong *nbytes);
45 void parser_done(PARSER_CONTEXT *ctx);
46
47 #endif