8 int prefixlen; /* there may be some empty slots with prefixlen==-1 at end */
9 Byte *prefix; /* ceil(prefixlen/8) bytes */
13 struct MaskMap_Value {
15 MaskMap_Entry *entries;
16 }; /* overlays internalRep */
18 int pat_maskmapv(Tcl_Interp *ip, Tcl_Obj *var, MaskMap_Var *agg) {
20 rc= pat_somethingv(ip,var,&agg->sth,&maskmap_type); if (rc) return rc;
21 agg->mm= (void*)&agg->sth.obj->internalRep;
25 int do_maskmap_amend(ClientData cd, Tcl_Interp *ip,
26 MaskMap_Var map, HBytes_Value prefix,
27 int preflen, Tcl_Obj *data) {
31 int do_maskmap_lookup(ClientData cd, Tcl_Interp *ip,
32 MaskMap_Var map, HBytes_Value addr, Tcl_Obj *def,
37 static void maskmap_t_free(Tcl_Obj *o) { }
38 static void maskmap_t_dup(Tcl_Obj *src, Tcl_Obj *dup) { }
39 static void maskmap_t_ustr(Tcl_Obj *o) { }
40 static int maskmap_t_sfa(Tcl_Interp *ip, Tcl_Obj *o) { return TCL_ERROR; }
42 Tcl_ObjType maskmap_type = {
44 maskmap_t_free, maskmap_t_dup, maskmap_t_ustr, maskmap_t_sfa