chiark / gitweb /
many improvements: use Get/SetAssocData for idtables to avoid globals, and adns bindi...
[chiark-tcl.git] / base / tables-examples.tct
index 7cbf3128cc79415e3273558534b0eb59f47bf7ff..98c6cd98cca3118383b2dcf483e4cf1ce01fbbec 100644 (file)
@@ -2,15 +2,28 @@ Type hb:                      HBytes_Value @
 Init hb                                hbytes_sentinel(&@);
 
 Type hbv:                      HBytes_Var @
 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 constv(Tcl_ObjType*):     Tcl_Obj *@
+
+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(&@);
 
 
 Type sockaddr:                 SockAddr_Value @
 Init sockaddr                  sockaddr_clear(&@);
 
-Type sockid:                   DgramSockID @
+Type iddata(const IdDataSpec *idds):   void *@
 Type ulong:                    uint32_t @
 Type long:                     long @
 Type ulong:                    uint32_t @
 Type long:                     long @
+Type string:                   const char *@
+
+Type adnsresults:              adns_answer *@
+Init adnsresults               @=0;
+Fini adnsresults               free(@);
+
+Type charfrom(const char *opts, const char *what):     int
 
 H-Include      "hbytes.h"
 
 
 H-Include      "hbytes.h"
 
@@ -21,9 +34,55 @@ Table toplevel TopLevel_Command
        dgram-socket
                subcmd  enum(DgramSocket_SubCommand,"dgram-socket subcommand")
                ...     obj
        dgram-socket
                subcmd  enum(DgramSocket_SubCommand,"dgram-socket subcommand")
                ...     obj
+       tuntap-socket-raw
+           subcmd enum(TunSocket_SubCommand,"tuntap-socket-raw subcommand")
+           ... obj
        ulong
                subcmd  enum(ULong_SubCommand,"ulong subcommand")
                ...     obj
        ulong
                subcmd  enum(ULong_SubCommand,"ulong subcommand")
                ...     obj
+       adns
+               subcmd  enum(Adns_SubCommand,"adns subcommand")
+               ...     obj
+
+Table adns Adns_SubCommand
+       lookup
+               rrtype  enum(AdnsTclRRTypeInfo, "rrtype")
+               domain  string
+               ...     obj
+               =>      obj
+       synch
+               rrtype  enum(AdnsTclRRTypeInfo, "rrtype")
+               domain  string
+               ...     obj
+               =>      obj
+       asynch
+               on_yes  obj
+               on_no   obj
+               on_fail obj
+               xargs   obj
+               rrtype  enum(AdnsTclRRTypeInfo, "rrtype")
+               domain  string
+               ...     obj
+               =>      iddata(&adnstcl_queries)
+       asynch-cancel
+               query   iddata(&adnstcl_queries)
+       new-resolver
+               ...     obj
+               =>      iddata(&adnstcl_resolvers)
+       destroy-resolver
+               res     iddata(&adnstcl_resolvers)
+
+Table maskmap MaskMap_SubCommand
+       lookup
+               map     constv(&maskmap_type)
+               addr    hb
+               ?def    obj
+               =>      obj
+       amend
+               map     maskmapv
+               prefix  obj
+               preflen obj
+               data    obj
 
 Table ulong ULong_SubCommand
        ul2int
 
 Table ulong ULong_SubCommand
        ul2int
@@ -128,6 +187,9 @@ Table hbytes HBytes_SubCommand
                v       hb
                count   int
                =>      hb
                v       hb
                count   int
                =>      hb
+       xor
+               v       hbv
+               d       hb
        random
                length  int
                =>      hb
        random
                length  int
                =>      hb
@@ -154,6 +216,9 @@ Table hbytes HBytes_SubCommand
                prop    enum(HashAlgPropInfo, "prop")
                alg     enum(HashAlgInfo, "alg")
                =>      int
                prop    enum(HashAlgPropInfo, "prop")
                alg     enum(HashAlgInfo, "alg")
                =>      int
+       mask-map
+               subcmd  enum(MaskMap_SubCommand, "hbytes mask-map subcommand")
+               ...     obj
 
 Table padmethodinfo PadMethodInfo
        pkcs5
 
 Table padmethodinfo PadMethodInfo
        pkcs5
@@ -165,15 +230,32 @@ Table padmethodinfo PadMethodInfo
 Table dgram_socket DgramSocket_SubCommand
        create
                local   sockaddr
 Table dgram_socket DgramSocket_SubCommand
        create
                local   sockaddr
-               =>      sockid
+               =>      iddata(&dgram_socks)
        close
        close
-               sock    sockid
+               sock    iddata(&dgram_socks)
        transmit
        transmit
-               sock    sockid
+               sock    iddata(&dgram_socks)
                data    hb
                remote  sockaddr
        on-receive
                data    hb
                remote  sockaddr
        on-receive
-               sock    sockid
+               sock    iddata(&dgram_socks)
+               ?script obj
+
+Table tuntap_socket_raw TunSocket_SubCommand
+       create
+               ?ifname string
+               =>      iddata(&tuntap_socks)
+       close
+               sock    iddata(&tuntap_socks)
+       ifname
+               sock    iddata(&tuntap_socks)
+               =>      string
+       receive
+               sock    iddata(&tuntap_socks)
+               data    hb
+       on-transmit
+               sock    iddata(&tuntap_socks)
+               mtu     long
                ?script obj
 
 Table blockcipherop BlockCipherOp
                ?script obj
 
 Table blockcipherop BlockCipherOp