On Thu, Aug 24, 2017 at 06:19:41PM +0700, Nikolay Marchuk wrote: > This change introduces new filtering architecture primitives: filter, > filter_action and bool_expression. Filtering is now done after decoding of > syscall and tcp->qual_flg stores filtering results. [...] > diff --git a/filter.c b/filter.c > new file mode 100644 > index 00000000..9c9b7e0d > --- /dev/null > +++ b/filter.c [...] > +#include "defs.h" > +#include "filter.h" > + > +#define DECL_FILTER(name) \ > +extern void * > \ > +parse_ ## name ## _filter(const char *); \ > +extern bool \ > +run_ ## name ## _filter(struct tcb *, void *); > \ > +extern void \ > +free_ ## name ## _filter(void *) \ > +/* End of DECL_FILTER definition. */ > + > +DECL_FILTER(syscall); > +DECL_FILTER(fd); > +DECL_FILTER(path); > +#undef DECL_FILTER
What are all these function declarations doing in this compilation unit? What guarantees that these declarations match definitions? [...] > diff --git a/filter_action.c b/filter_action.c > new file mode 100644 > index 00000000..0f75f2e5 > --- /dev/null > +++ b/filter_action.c [...] > +#include "defs.h" > +#include "filter.h" > + > +#define DECL_FILTER_ACTION(name) \ > +extern void \ > +apply_ ## name(struct tcb *, void *) \ > +/* End of DECL_FILTER_ACTION definition. */ > + > +DECL_FILTER_ACTION(trace); > +DECL_FILTER_ACTION(inject); > +DECL_FILTER_ACTION(fault); > +DECL_FILTER_ACTION(read); > +DECL_FILTER_ACTION(write); > +DECL_FILTER_ACTION(raw); > +DECL_FILTER_ACTION(abbrev); > +DECL_FILTER_ACTION(verbose); > +#undef DECL_FILTER_ACTION > + > +extern bool is_traced(struct tcb *); > +extern bool not_injected(struct tcb *); > + > +#define DECL_FILTER_ACTION_PARSER(name) > \ > +extern void * > \ > +parse_ ## name(const char *); > \ > +/* End of DECL_FILTER_ACTION_PARSER definition. */ > + > +DECL_FILTER_ACTION_PARSER(null); > +DECL_FILTER_ACTION_PARSER(inject); > +DECL_FILTER_ACTION_PARSER(fault); > +#undef DECL_FILTER_ACTION_PARSER Likewise. -- ldv
signature.asc
Description: PGP signature
------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________ Strace-devel mailing list Strace-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/strace-devel