summaryrefslogtreecommitdiffstats
path: root/filter/filter.c
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>2000-06-07 15:54:06 +0200
committerPavel Machek <pavel@ucw.cz>2000-06-07 15:54:06 +0200
commit771ae456a5ff0e12379047b737da31b0be4059ea (patch)
tree287ee4dd7b826bb8aa9acbf8040ecb29d597c5e4 /filter/filter.c
parentfa6c2405e2bab551245e1af7ed19b550b8bbef79 (diff)
downloadbird-771ae456a5ff0e12379047b737da31b0be4059ea.tar
bird-771ae456a5ff0e12379047b737da31b0be4059ea.zip
Better progdocs for filters
Diffstat (limited to 'filter/filter.c')
-rw-r--r--filter/filter.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/filter/filter.c b/filter/filter.c
index b4e0105..540ce13 100644
--- a/filter/filter.c
+++ b/filter/filter.c
@@ -260,6 +260,16 @@ rta_cow(void)
*
* Interpret given tree of filter instructions. This is core function
* of filter system and does all the hard work.
+ *
+ * Each instruction has 4 fields: code (which is instruction code),
+ * aux (which is extension to instruction code, typically type),
+ * arg1 and arg2 - arguments. Depending on instruction, arguments
+ * are either integers, or pointers to instruction trees. Common
+ * instructions like +, that have two expressions as arguments use
+ * TWOARGS macro to get both of them evaluated.
+ *
+ * &f_val structures are copied around, so there are no problems with
+ * memory managment.
*/
static struct f_val
interpret(struct f_inst *what)