|
Packit |
c5a612 |
#ifndef NFTABLES_PARSER_H
|
|
Packit |
c5a612 |
#define NFTABLES_PARSER_H
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
#include <list.h>
|
|
Packit |
c5a612 |
#include <rule.h> // FIXME
|
|
Packit |
c5a612 |
#include <nftables.h>
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
#define TABSIZE 8
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
#define YYLTYPE struct location
|
|
Packit |
c5a612 |
#define YYLTYPE_IS_TRIVIAL 0
|
|
Packit |
c5a612 |
#define YYENABLE_NLS 0
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
#define SCOPE_NEST_MAX 3
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
struct parser_state {
|
|
Packit |
c5a612 |
struct input_descriptor *indesc;
|
|
Packit |
c5a612 |
struct input_descriptor *indescs[MAX_INCLUDE_DEPTH];
|
|
Packit |
c5a612 |
unsigned int indesc_idx;
|
|
Packit |
c5a612 |
struct list_head indesc_list;
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
struct list_head *msgs;
|
|
Packit |
c5a612 |
unsigned int nerrs;
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
struct scope *scopes[SCOPE_NEST_MAX];
|
|
Packit |
c5a612 |
unsigned int scope;
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
struct list_head *cmds;
|
|
Packit |
c5a612 |
};
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
struct mnl_socket;
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
extern void parser_init(struct nft_ctx *nft, struct parser_state *state,
|
|
Packit |
c5a612 |
struct list_head *msgs, struct list_head *cmds,
|
|
Packit |
c5a612 |
struct scope *top_scope);
|
|
Packit |
c5a612 |
extern int nft_parse(struct nft_ctx *ctx, void *, struct parser_state *state);
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
extern void *scanner_init(struct parser_state *state);
|
|
Packit |
c5a612 |
extern void scanner_destroy(struct nft_ctx *nft);
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
extern int scanner_read_file(struct nft_ctx *nft, const char *filename,
|
|
Packit |
c5a612 |
const struct location *loc);
|
|
Packit |
c5a612 |
extern int scanner_include_file(struct nft_ctx *ctx, void *scanner,
|
|
Packit |
c5a612 |
const char *filename,
|
|
Packit |
c5a612 |
const struct location *loc);
|
|
Packit |
c5a612 |
extern void scanner_push_buffer(void *scanner,
|
|
Packit |
c5a612 |
const struct input_descriptor *indesc,
|
|
Packit |
c5a612 |
const char *buffer);
|
|
Packit |
c5a612 |
|
|
Packit |
c5a612 |
#endif /* NFTABLES_PARSER_H */
|