X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=chiark-tcl.git;a=blobdiff_plain;f=base%2Ftables-examples.tct;h=7ce5dc7f671bfcf61842961ba4169843c996d077;hp=6f8755a8495d88d182bb358081c80372660458d0;hb=86a68f7c8f058dcc55ee136da67c3e0c7030474d;hpb=ec732779f1e6caddd2dcc3bf6bf084ad2202bfd1 diff --git a/base/tables-examples.tct b/base/tables-examples.tct index 6f8755a..7ce5dc7 100644 --- a/base/tables-examples.tct +++ b/base/tables-examples.tct @@ -2,24 +2,135 @@ Type hb: HBytes_Value @ Init hb hbytes_sentinel(&@); Type hbv: HBytes_Var @ -Init hbv @.hb=0; @.obj=0; @.var=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 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(&@); -Type sockid: int @ -Init sockid @=-1; +Type iddata(const IdDataSpec *idds): void *@ +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" -Untabled +Table toplevel TopLevel_Command hbytes subcmd enum(HBytes_SubCommand, "hbytes subcommand") - obj ... + ... obj dgram-socket - subcmd enum(DgramSocket_SubCommand,"dgram-socket subcommand") - obj ... + 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 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) + set-default-resolver + res iddata(&adnstcl_resolvers) + destroy-resolver + res iddata(&adnstcl_resolvers) + +Table addrmap AddrMap_SubCommand + lookup + map constv(&addrmap_type) + addr hb + ?def obj + => obj + amend-range + map addrmapv + start hb + end hb + data obj + amend-mask + map addrmapv + prefix hb + preflen obj + data 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 @@ -28,20 +139,35 @@ Table hbytes HBytes_SubCommand 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 ... + ... str append v hbv - str ... + ... str rep-info v obj => obj concat - str ... + ... str => hb unprepend v hbv @@ -55,19 +181,34 @@ Table hbytes HBytes_SubCommand v hbv length int => hb - pkcs5 - meth enum(PadMethod, "hbytes pad subcommand") + overwrite v hbv - block obj - => int + 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 - encrypt charfrom("de","encrypt/decrypt") - v hbv - alg enum(BlockCipherAlgInfo, "alg") - key obj - mode enum(BlockCipherModeInfo, "mode") - ?iv hb - => hb + op enum(BlockCipherOp, "op") + ... obj hash alg enum(HashAlgInfo, "hash alg") message hb @@ -78,18 +219,78 @@ Table hbytes HBytes_SubCommand key obj ?maclen obj => hb - zeroes - length int - => hb - random - length int - => 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 - => sockid + => 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 sockid -# transmit -# + 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;