diff options
author | Maria Matejka <mq@ucw.cz> | 2022-06-16 23:24:56 +0200 |
---|---|---|
committer | Maria Matejka <mq@ucw.cz> | 2022-06-20 11:56:38 +0200 |
commit | becab5072d6d84d6f9c9402387a9e1c14dcc384d (patch) | |
tree | d9d7a016655d271f7cc4d7b1cc04e7ce7cad69ec /lib | |
parent | 8c92f47ac77f267368b6d6bd161689a0c0bc5e5a (diff) |
Import tables are stored as an attribute layer inside the main tables.
The separate import tables were too memory-greedy, there is no need for
them being stored as full-sized tables.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/route.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/route.h b/lib/route.h index 7e28b91e..f7b089d9 100644 --- a/lib/route.h +++ b/lib/route.h @@ -161,6 +161,7 @@ typedef struct ea_list { #define EALF_SORTED 1 /* Attributes are sorted by code */ #define EALF_BISECT 2 /* Use interval bisection for searching */ #define EALF_CACHED 4 /* List is cached */ +#define EALF_OVERLAY 8 /* List is an overlay in the same table */ struct ea_class { #define EA_CLASS_INSIDE \ @@ -413,7 +414,7 @@ static inline int rte_dest(const rte *r) } void rta_init(void); -ea_list *ea_lookup(ea_list *); /* Get a cached (and normalized) variant of this attribute list */ +ea_list *ea_lookup(ea_list *, int overlay); /* Get a cached (and normalized) variant of this attribute list */ static inline int ea_is_cached(const ea_list *r) { return r->flags & EALF_CACHED; } static inline ea_list *ea_clone(ea_list *r) { r->uc++; return r; } void ea__free(ea_list *r); |