X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=base%2Ftables-examples.tct;h=235f7702f54ca37ad0e6b8c9bb9186728546bbe6;hb=476c966037dfec5a0a2b03511dced36c673c2307;hp=3fd080147af3662f163d7ec7a0889773c7834d67;hpb=743de63e7b3214a5abc748ec0fa90160b6983551;p=chiark-tcl.git diff --git a/base/tables-examples.tct b/base/tables-examples.tct index 3fd0801..235f770 100644 --- a/base/tables-examples.tct +++ b/base/tables-examples.tct @@ -2,15 +2,22 @@ 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(&@); -Type sockid: DgramSockID @ +Type iddata(IdDataTable *tab): void *@ Type ulong: uint32_t @ Type long: long @ +Type string: const char *@ + +Type charfrom(const char *opts, const char *what): int H-Include "hbytes.h" @@ -21,9 +28,27 @@ 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 + 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 @@ -40,6 +65,10 @@ Table ulong ULong_SubCommand a ulong b ulong => ulong + multiply + a ulong + b ulong + => ulong subtract a ulong b ulong @@ -124,14 +153,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 +178,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 +243,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;