* uint VARNAME/VALUE (VARNAME if ul2bitfields;
* ulong VARNAME/VALUE VALUE if bitfields2ul)
*
+ * hbytes mask-map lookup MAP-VAR ADDRESS [DEFAULT] => DATA
+ * error on missing default or if address too short
+ * hbytes mask-map amend MAP-VAR PREFIX PREFIX-LENGTH DATA
+ * a maskmap MAP is [list [list PREFIX PREFIX-LENGTH DATA]]
+ * sorted first by descending PREFIX-LENGTH and then by PREFIX
+ * each PREFIX is truncated to the shortest number of pairs of
+ * hex digits which can represent it
+ *
* Error codes
*
* HBYTES BLOCKCIPHER CRYPTFAIL CRYPT block cipher mode failed somehow (!)
#include <sys/un.h>
#include <arpa/inet.h>
-#include <tcl.h>
+#include <tcl8.3/tcl.h>
typedef unsigned char Byte;
/* from parse.c */
typedef struct {
- HBytes_Value *hb;
Tcl_Obj *obj, *var;
int copied;
+} Something_Var;
+
+void init_somethingv(Something_Var *sth);
+void fini_somethingv(Tcl_Interp *ip, int rc, Something_Var *sth);
+int pat_somethingv(Tcl_Interp *ip, Tcl_Obj *var,
+ Something_Var *sth, Tcl_ObjType *type);
+
+typedef struct {
+ HBytes_Value *hb;
+ Something_Var sth;
} HBytes_Var;
-void fini_hbv(Tcl_Interp *ip, int rc, HBytes_Var *agg);
+/* from maskmap.c */
+
+typedef struct MaskMap_Value MaskMap_Value;
+
+typedef struct {
+ MaskMap_Value *mm;
+ Something_Var sth;
+} MaskMap_Var;
+
+extern Tcl_ObjType maskmap_type;
/* from chop.c */
/* only do_... functions declared in tables.h */