FD.io VPP
v20.01-48-g3e0dafb74
Vector Packet Processing
macros.h
Go to the documentation of this file.
1
/*
2
macros.h - definitions for a simple macro expander
3
4
Copyright (c) 2010, 2014 Cisco and/or its affiliates.
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.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*/
18
19
#ifndef included_macros_h
20
#define included_macros_h
21
22
#include <
vppinfra/vec.h
>
23
#include <
vppinfra/hash.h
>
24
#include <
vppinfra/format.h
>
25
26
#ifdef CLIB_UNIX
27
#include <stdlib.h>
28
#include <unistd.h>
29
#endif
30
31
typedef
struct
32
{
33
uword
*
the_builtin_eval_hash
;
34
uword
*
the_value_table_hash
;
35
}
macro_main_t
;
36
37
int
clib_macro_unset
(
macro_main_t
* mm,
char
*
name
);
38
int
clib_macro_set_value
(
macro_main_t
* mm,
char
*
name
,
char
*
value
);
39
void
clib_macro_add_builtin
(
macro_main_t
* mm,
char
*
name
,
void
*eval_fn);
40
i8
*
clib_macro_get_value
(
macro_main_t
* mm,
char
*
name
);
41
i8
*
clib_macro_eval
(
macro_main_t
* mm,
i8
* s,
i32
complain);
42
i8
*
clib_macro_eval_dollar
(
macro_main_t
* mm,
i8
* s,
i32
complain);
43
void
clib_macro_init
(
macro_main_t
* mm);
44
void
clib_macro_free
(
macro_main_t
* mm);
45
46
#endif
/* included_macros_h */
47
48
/*
49
* fd.io coding-style-patch-verification: ON
50
*
51
* Local Variables:
52
* eval: (c-set-style "gnu")
53
* End:
54
*/
hash.h
clib_macro_init
void clib_macro_init(macro_main_t *mm)
Definition:
macros.c:221
clib_macro_unset
int clib_macro_unset(macro_main_t *mm, char *name)
Definition:
macros.c:44
macro_main_t::the_value_table_hash
uword * the_value_table_hash
Definition:
macros.h:34
macro_main_t
Definition:
macros.h:31
clib_macro_add_builtin
void clib_macro_add_builtin(macro_main_t *mm, char *name, void *eval_fn)
Definition:
macros.c:204
format.h
i8
signed char i8
Definition:
types.h:45
clib_macro_eval_dollar
i8 * clib_macro_eval_dollar(macro_main_t *mm, i8 *s, i32 complain)
Definition:
macros.c:192
clib_macro_eval
i8 * clib_macro_eval(macro_main_t *mm, i8 *s, i32 complain)
Definition:
macros.c:95
name
string name[64]
Definition:
ip.api:44
clib_macro_get_value
i8 * clib_macro_get_value(macro_main_t *mm, char *name)
Definition:
macros.c:79
i32
signed int i32
Definition:
types.h:77
value
u8 value
Definition:
qos.api:54
macro_main_t::the_builtin_eval_hash
uword * the_builtin_eval_hash
Definition:
macros.h:33
clib_macro_set_value
int clib_macro_set_value(macro_main_t *mm, char *name, char *value)
Definition:
macros.c:64
uword
u64 uword
Definition:
types.h:112
clib_macro_free
void clib_macro_free(macro_main_t *mm)
Definition:
macros.c:238
vec.h
CLIB vectors are ubiquitous dynamically resized arrays with by user defined "headers".
src
vppinfra
macros.h
Generated on Wed Sep 9 2020 00:05:56 for FD.io VPP by
1.8.13