chiark / gitweb /
first cut of mask-map: skeleton
[chiark-tcl.git] / base / tables-examples.tct
index 82700dcd402e0c14c28f4a8d5797fe12a0b86ab5..235f7702f54ca37ad0e6b8c9bb9186728546bbe6 100644 (file)
@@ -2,8 +2,12 @@ Type hb:                       HBytes_Value @
 Init hb                                hbytes_sentinel(&@);
 
 Type hbv:                      HBytes_Var @
-Init hbv                       @.hb=0; @.obj=0; @.var=0; @.copied=0;
-Fini hbv                       fini_hbv(ip, rc, &@);
+Init hbv                       @.hb=0; init_somethingv(&@.sth);
+Fini hbv                       fini_somethingv(ip, rc, &@.sth);
+
+Type maskmapv:                 MaskMap_Var @
+Init maskmapv                  @.mm=0; init_somethingv(&@.sth);
+Fini maskmapv                  fini_somethingv(ip, rc, &@.sth);
 
 Type sockaddr:                 SockAddr_Value @
 Init sockaddr                  sockaddr_clear(&@);
@@ -13,6 +17,8 @@ Type ulong:                   uint32_t @
 Type long:                     long @
 Type string:                   const char *@
 
+Type charfrom(const char *opts, const char *what):     int
+
 H-Include      "hbytes.h"
 
 Table toplevel TopLevel_Command
@@ -22,12 +28,27 @@ Table toplevel TopLevel_Command
        dgram-socket
                subcmd  enum(DgramSocket_SubCommand,"dgram-socket subcommand")
                ...     obj
-       tuntap-socket
-               subcmd  enum(TunSocket_SubCommand,"tuntap-socket subcommand")
-               ...     obj
+       tuntap-socket-raw
+           subcmd enum(TunSocket_SubCommand,"tuntap-socket-raw subcommand")
+           ... obj
        ulong
                subcmd  enum(ULong_SubCommand,"ulong subcommand")
                ...     obj
+       mask-map
+               subcmd  enum(MaskMap_SubCommand, "hbytes mask-map subcommand")
+               ...     obj
+
+Table maskmap MaskMap_SubCommand
+       lookup
+               map     maskmapv
+               addr    hb
+               ?def    obj
+               =>      obj
+       amend
+               map     maskmapv
+               prefix  hb
+               preflen int
+               data    obj
 
 Table ulong ULong_SubCommand
        ul2int
@@ -183,11 +204,8 @@ Table dgram_socket DgramSocket_SubCommand
                sock    iddata(&dgram_socks)
                ?script obj
 
-Table tuntap_socket TunSocket_SubCommand
-       create-ptp
-               local   sockaddr
-               peer    sockaddr
-               mtu     long
+Table tuntap_socket_raw TunSocket_SubCommand
+       create
                ?ifname string
                =>      iddata(&tuntap_socks)
        close
@@ -200,6 +218,7 @@ Table tuntap_socket TunSocket_SubCommand
                data    hb
        on-transmit
                sock    iddata(&tuntap_socks)
+               mtu     long
                ?script obj
 
 Table blockcipherop BlockCipherOp