chiark / gitweb /
tuntap seems to sort of work
[chiark-tcl.git] / base / tables-examples.tct
index 3fd080147af3662f163d7ec7a0889773c7834d67..f8d44ef0d2c592c03fabf613b8a1269747104f8b 100644 (file)
@@ -8,9 +8,10 @@ Fini hbv                       fini_hbv(ip, rc, &@);
 Type sockaddr:                 SockAddr_Value @
 Init sockaddr                  sockaddr_clear(&@);
 
-Type sockid:                   DgramSockID @
+Type iddata(IdDataTable *tab): void *@
 Type ulong:                    uint32_t @
 Type long:                     long @
+Type string:                   const char *@
 
 H-Include      "hbytes.h"
 
@@ -21,6 +22,9 @@ Table toplevel TopLevel_Command
        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
@@ -40,6 +44,10 @@ Table ulong ULong_SubCommand
                a       ulong
                b       ulong
                =>      ulong
+       multiply
+               a       ulong
+               b       ulong
+               =>      ulong
        subtract
                a       ulong
                b       ulong
@@ -124,14 +132,18 @@ Table hbytes HBytes_SubCommand
                v       hb
                count   int
                =>      hb
+       xor
+               v       hbv
+               d       hb
        random
                length  int
                =>      hb
-       pkcs5
-               meth    enum(PadMethod, "hbytes pad subcommand")
+       pad
+               op      enum(PadOp, "hbytes pad subcommand")
                v       hbv
-               block   obj
-               =>      int
+               blocksz obj
+               meth    enum(PadMethodInfo, "pad method")
+               ...     methargs
        blockcipher
                op      enum(BlockCipherOp, "op")
                ...     obj
@@ -145,19 +157,47 @@ Table hbytes HBytes_SubCommand
                key     obj
                ?maclen obj
                =>      hb
+       hash-prop
+               prop    enum(HashAlgPropInfo, "prop")
+               alg     enum(HashAlgInfo, "alg")
+               =>      int
+
+Table padmethodinfo PadMethodInfo
+       pkcs5
+               =>      int
+       rfc2406
+               nxthdr  obj
+               =>      int
 
 Table dgram_socket DgramSocket_SubCommand
        create
                local   sockaddr
-               =>      sockid
+               =>      iddata(&dgram_socks)
        close
-               sock    sockid
+               sock    iddata(&dgram_socks)
        transmit
-               sock    sockid
+               sock    iddata(&dgram_socks)
                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
@@ -182,6 +222,10 @@ Table blockcipherop BlockCipherOp
                mode    enum(BlockCipherModeInfo, "mode")
                iv      hb
                =>      hb
+       prop    -1
+               prop    enum(BlockCipherPropInfo, "prop")
+               alg     enum(BlockCipherAlgInfo, "alg")
+               =>      int
 
 EntryExtra BlockCipherOp
        int encrypt;