chiark / gitweb /
initial import and build-faff, wip
[chiark-tcl.git] / base / tables-examples.tct
1 Type hb:                        HBytes_Value @
2 Init hb                         hbytes_sentinel(&@);
3
4 Type hbv:                       HBytes_Var @
5 Init hbv                        @.hb=0; init_somethingv(&@.sth);
6 Fini hbv                        fini_somethingv(ip, rc, &@.sth);
7
8 Type constv(Tcl_ObjType*):      Tcl_Obj *@
9
10 Type addrmapv:                  AddrMap_Var @
11 Init addrmapv                   @.am=0; init_somethingv(&@.sth);
12 Fini addrmapv                   fini_somethingv(ip, rc, &@.sth);
13
14 Type sockaddr:                  SockAddr_Value @
15 Init sockaddr                   sockaddr_clear(&@);
16
17 Table toplevel TopLevel_Command
18         hbytes
19                 subcmd  enum(HBytes_SubCommand, "hbytes subcommand")
20                 ...     obj
21         dgram-socket
22                 subcmd  enum(DgramSocket_SubCommand,"dgram-socket subcommand")
23                 ...     obj
24         tuntap-socket-raw
25             subcmd enum(TunSocket_SubCommand,"tuntap-socket-raw subcommand")
26             ... obj
27         ulong
28                 subcmd  enum(ULong_SubCommand,"ulong subcommand")
29                 ...     obj
30         adns
31                 subcmd  enum(Adns_SubCommand,"adns subcommand")
32                 ...     obj
33
34 Table addrmap AddrMap_SubCommand
35         lookup
36                 map     constv(&addrmap_type)
37                 addr    hb
38                 ?def    obj
39                 =>      obj
40         amend-range
41                 map     addrmapv
42                 start   hb
43                 end     hb
44                 data    obj
45         amend-mask
46                 map     addrmapv
47                 prefix  hb
48                 preflen obj
49                 data    obj
50
51 Table ulong ULong_SubCommand
52         ul2int
53                 v       ulong
54                 =>      int
55         int2ul
56                 v       int
57                 =>      ulong
58         mask
59                 a       ulong
60                 b       ulong
61                 =>      ulong
62         add
63                 a       ulong
64                 b       ulong
65                 =>      ulong
66         multiply
67                 a       ulong
68                 b       ulong
69                 =>      ulong
70         subtract
71                 a       ulong
72                 b       ulong
73                 =>      ulong
74         compare
75                 a       ulong
76                 b       ulong
77                 =>      int
78         shift
79                 right   charfrom("lr", "shift direction")
80                 v       ulong
81                 bits    int
82                 =>      ulong
83         ul2bitfields
84                 value   ulong
85                 ...     obj
86                 =>      int
87         bitfields2ul
88                 base    ulong
89                 ...     obj
90                 =>      ulong
91
92 Table hbytes HBytes_SubCommand
93         raw2h
94                 binary  obj
95                 =>      hb
96         h2raw
97                 hex     hb
98                 =>      obj
99         ushort2h
100                 value   long
101                 =>      hb
102         h2ushort
103                 hex     hb
104                 =>      long
105         length
106                 v       hb
107                 =>      int
108         compare
109                 a       hb
110                 b       hb
111                 =>      int
112         range
113                 v       hb
114                 start   int
115                 size    int
116                 =>      hb
117         prepend
118                 v       hbv
119                 ...     str
120         append
121                 v       hbv
122                 ...     str
123         rep-info
124                 v       obj
125                 =>      obj
126         concat
127                 ...     str
128                 =>      hb
129         unprepend
130                 v       hbv
131                 length  int
132                 =>      hb
133         unappend
134                 v       hbv
135                 length  int
136                 =>      hb
137         chopto
138                 v       hbv
139                 length  int
140                 =>      hb
141         overwrite
142                 v       hbv
143                 start   int
144                 sub     hb
145         trimleft
146                 v       hbv
147         zeroes
148                 length  int
149                 =>      hb
150         repeat
151                 v       hb
152                 count   int
153                 =>      hb
154         xor
155                 v       hbv
156                 d       hb
157         random
158                 length  int
159                 =>      hb
160         pad
161                 op      enum(PadOp, "hbytes pad subcommand")
162                 v       hbv
163                 blocksz obj
164                 meth    enum(PadMethodInfo, "pad method")
165                 ...     methargs
166         blockcipher
167                 op      enum(BlockCipherOp, "op")
168                 ...     obj
169         hash
170                 alg     enum(HashAlgInfo, "hash alg")
171                 message hb
172                 =>      hb
173         hmac
174                 alg     enum(HashAlgInfo, "hash alg for hmac")
175                 message hb
176                 key     obj
177                 ?maclen obj
178                 =>      hb
179         hash-prop
180                 prop    enum(HashAlgPropInfo, "prop")
181                 alg     enum(HashAlgInfo, "alg")
182                 =>      int
183         addr-map
184                 subcmd  enum(AddrMap_SubCommand, "hbytes addr-map subcommand")
185                 ...     obj
186
187 Table padmethodinfo PadMethodInfo
188         pkcs5
189                 =>      int
190         rfc2406
191                 nxthdr  obj
192                 =>      int
193
194 Table dgram_socket DgramSocket_SubCommand
195         create
196                 local   sockaddr
197                 =>      iddata(&dgram_socks)
198         close
199                 sock    iddata(&dgram_socks)
200         transmit
201                 sock    iddata(&dgram_socks)
202                 data    hb
203                 remote  sockaddr
204         on-receive
205                 sock    iddata(&dgram_socks)
206                 ?script obj
207
208 Table tuntap_socket_raw TunSocket_SubCommand
209         create
210                 ?ifname string
211                 =>      iddata(&tuntap_socks)
212         close
213                 sock    iddata(&tuntap_socks)
214         ifname
215                 sock    iddata(&tuntap_socks)
216                 =>      string
217         receive
218                 sock    iddata(&tuntap_socks)
219                 data    hb
220         on-transmit
221                 sock    iddata(&tuntap_socks)
222                 mtu     long
223                 ?script obj
224
225 Table blockcipherop BlockCipherOp
226         e       1
227                 v       hbv
228                 alg     enum(BlockCipherAlgInfo, "alg")
229                 key     obj
230                 mode    enum(BlockCipherModeInfo, "mode")
231                 ?iv     hb
232                 =>      hb
233         d       0
234                 v       hbv
235                 alg     enum(BlockCipherAlgInfo, "alg")
236                 key     obj
237                 mode    enum(BlockCipherModeInfo, "mode")
238                 ?iv     hb
239                 =>      hb
240         mac     -1
241                 msg     hb
242                 alg     enum(BlockCipherAlgInfo, "alg")
243                 key     obj
244                 mode    enum(BlockCipherModeInfo, "mode")
245                 iv      hb
246                 =>      hb
247         prop    -1
248                 prop    enum(BlockCipherPropInfo, "prop")
249                 alg     enum(BlockCipherAlgInfo, "alg")
250                 =>      int
251
252 EntryExtra BlockCipherOp
253         int encrypt;