+Type hb: HBytes_Value @
+Init hb hbytes_sentinel(&@);
+
+Type hbv: HBytes_Var @
+Init hbv @.hb=0; init_somethingv(&@.sth);
+Fini hbv fini_somethingv(ip, rc, &@.sth);
+
+Type addrmapv: AddrMap_Var @
+Init addrmapv @.am=0; init_somethingv(&@.sth);
+Fini addrmapv fini_somethingv(ip, rc, &@.sth);
+
+Type sockaddr: SockAddr_Value @
+Init sockaddr sockaddr_clear(&@);
+
+Table toplevel TopLevel_Command
+ hbytes
+ subcmd enum(HBytes_SubCommand, "hbytes 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
+ adns
+ subcmd enum(Adns_SubCommand,"adns subcommand")
+ ... obj
+
+Table ulong ULong_SubCommand
+ ul2int
+ v ulong
+ => int
+ int2ul
+ v int
+ => ulong
+ mask
+ a ulong
+ b ulong
+ => ulong
+ add
+ a ulong
+ b ulong
+ => ulong
+ multiply
+ a ulong
+ b ulong
+ => ulong
+ subtract
+ a ulong
+ b ulong
+ => ulong
+ compare
+ a ulong
+ b ulong
+ => int
+ shift
+ right charfrom("lr", "shift direction")
+ v ulong
+ bits int
+ => ulong
+ ul2bitfields
+ value ulong
+ ... obj
+ => int
+ bitfields2ul
+ base ulong
+ ... obj
+ => ulong
+
+Table hbytes HBytes_SubCommand
+ raw2h
+ binary obj
+ => hb
+ h2raw
+ hex hb
+ => obj
+ ushort2h
+ value long
+ => hb
+ h2ushort
+ hex hb
+ => long
+ length
+ v hb
+ => int
+ compare
+ a hb
+ b hb
+ => int
+ range
+ v hb
+ start int
+ size int
+ => hb
+ prepend
+ v hbv
+ ... str
+ append
+ v hbv
+ ... str
+ rep-info
+ v obj
+ => obj
+ concat
+ ... str
+ => hb
+ unprepend
+ v hbv
+ length int
+ => hb
+ unappend
+ v hbv
+ length int
+ => hb
+ chopto
+ v hbv
+ length int
+ => hb
+ overwrite
+ v hbv
+ start int
+ sub hb
+ trimleft
+ v hbv
+ zeroes
+ length int
+ => hb
+ repeat
+ v hb
+ count int
+ => hb
+ xor
+ v hbv
+ d hb
+ random
+ length int
+ => hb
+ pad
+ op enum(PadOp, "hbytes pad subcommand")
+ v hbv
+ blocksz obj
+ meth enum(PadMethodInfo, "pad method")
+ ... methargs
+ blockcipher
+ op enum(BlockCipherOp, "op")
+ ... obj
+ hash
+ alg enum(HashAlgInfo, "hash alg")
+ message hb
+ => hb
+ hmac
+ alg enum(HashAlgInfo, "hash alg for hmac")
+ message hb
+ key obj
+ ?maclen obj
+ => hb
+ hash-prop
+ prop enum(HashAlgPropInfo, "prop")
+ alg enum(HashAlgInfo, "alg")
+ => int
+ addr-map
+ subcmd enum(AddrMap_SubCommand, "hbytes addr-map subcommand")
+ ... obj
+
+Table padmethodinfo PadMethodInfo
+ pkcs5
+ => int
+ rfc2406
+ nxthdr obj
+ => int
+
+Table dgram_socket DgramSocket_SubCommand
+ create
+ local sockaddr
+ => iddata(&dgram_socks)
+ close
+ sock iddata(&dgram_socks)
+ transmit
+ sock iddata(&dgram_socks)
+ data hb
+ remote sockaddr
+ on-receive
+ 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
+ e 1
+ v hbv
+ alg enum(BlockCipherAlgInfo, "alg")
+ key obj
+ mode enum(BlockCipherModeInfo, "mode")
+ ?iv hb
+ => hb
+ d 0
+ v hbv
+ alg enum(BlockCipherAlgInfo, "alg")
+ key obj
+ mode enum(BlockCipherModeInfo, "mode")
+ ?iv hb
+ => hb
+ mac -1
+ msg hb
+ alg enum(BlockCipherAlgInfo, "alg")
+ key obj
+ mode enum(BlockCipherModeInfo, "mode")
+ iv hb
+ => hb
+ prop -1
+ prop enum(BlockCipherPropInfo, "prop")
+ alg enum(BlockCipherAlgInfo, "alg")
+ => int
+
+EntryExtra BlockCipherOp
+ int encrypt;