chiark / gitweb /
7cbf3128cc79415e3273558534b0eb59f47bf7ff
[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; @.obj=0; @.var=0; @.copied=0;
6 Fini hbv                        fini_hbv(ip, rc, &@);
7
8 Type sockaddr:                  SockAddr_Value @
9 Init sockaddr                   sockaddr_clear(&@);
10
11 Type sockid:                    DgramSockID @
12 Type ulong:                     uint32_t @
13 Type long:                      long @
14
15 H-Include       "hbytes.h"
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         ulong
25                 subcmd  enum(ULong_SubCommand,"ulong subcommand")
26                 ...     obj
27
28 Table ulong ULong_SubCommand
29         ul2int
30                 v       ulong
31                 =>      int
32         int2ul
33                 v       int
34                 =>      ulong
35         mask
36                 a       ulong
37                 b       ulong
38                 =>      ulong
39         add
40                 a       ulong
41                 b       ulong
42                 =>      ulong
43         multiply
44                 a       ulong
45                 b       ulong
46                 =>      ulong
47         subtract
48                 a       ulong
49                 b       ulong
50                 =>      ulong
51         compare
52                 a       ulong
53                 b       ulong
54                 =>      int
55         shift
56                 right   charfrom("lr", "shift direction")
57                 v       ulong
58                 bits    int
59                 =>      ulong
60         ul2bitfields
61                 value   ulong
62                 ...     obj
63                 =>      int
64         bitfields2ul
65                 base    ulong
66                 ...     obj
67                 =>      ulong
68
69 Table hbytes HBytes_SubCommand
70         raw2h
71                 binary  obj
72                 =>      hb
73         h2raw
74                 hex     hb
75                 =>      obj
76         ushort2h
77                 value   long
78                 =>      hb
79         h2ushort
80                 hex     hb
81                 =>      long
82         length
83                 v       hb
84                 =>      int
85         compare
86                 a       hb
87                 b       hb
88                 =>      int
89         range
90                 v       hb
91                 start   int
92                 size    int
93                 =>      hb
94         prepend
95                 v       hbv
96                 ...     str
97         append
98                 v       hbv
99                 ...     str
100         rep-info
101                 v       obj
102                 =>      obj
103         concat
104                 ...     str
105                 =>      hb
106         unprepend
107                 v       hbv
108                 length  int
109                 =>      hb
110         unappend
111                 v       hbv
112                 length  int
113                 =>      hb
114         chopto
115                 v       hbv
116                 length  int
117                 =>      hb
118         overwrite
119                 v       hbv
120                 start   int
121                 sub     hb
122         trimleft
123                 v       hbv
124         zeroes
125                 length  int
126                 =>      hb
127         repeat
128                 v       hb
129                 count   int
130                 =>      hb
131         random
132                 length  int
133                 =>      hb
134         pad
135                 op      enum(PadOp, "hbytes pad subcommand")
136                 v       hbv
137                 blocksz obj
138                 meth    enum(PadMethodInfo, "pad method")
139                 ...     methargs
140         blockcipher
141                 op      enum(BlockCipherOp, "op")
142                 ...     obj
143         hash
144                 alg     enum(HashAlgInfo, "hash alg")
145                 message hb
146                 =>      hb
147         hmac
148                 alg     enum(HashAlgInfo, "hash alg for hmac")
149                 message hb
150                 key     obj
151                 ?maclen obj
152                 =>      hb
153         hash-prop
154                 prop    enum(HashAlgPropInfo, "prop")
155                 alg     enum(HashAlgInfo, "alg")
156                 =>      int
157
158 Table padmethodinfo PadMethodInfo
159         pkcs5
160                 =>      int
161         rfc2406
162                 nxthdr  obj
163                 =>      int
164
165 Table dgram_socket DgramSocket_SubCommand
166         create
167                 local   sockaddr
168                 =>      sockid
169         close
170                 sock    sockid
171         transmit
172                 sock    sockid
173                 data    hb
174                 remote  sockaddr
175         on-receive
176                 sock    sockid
177                 ?script obj
178
179 Table blockcipherop BlockCipherOp
180         e       1
181                 v       hbv
182                 alg     enum(BlockCipherAlgInfo, "alg")
183                 key     obj
184                 mode    enum(BlockCipherModeInfo, "mode")
185                 ?iv     hb
186                 =>      hb
187         d       0
188                 v       hbv
189                 alg     enum(BlockCipherAlgInfo, "alg")
190                 key     obj
191                 mode    enum(BlockCipherModeInfo, "mode")
192                 ?iv     hb
193                 =>      hb
194         mac     -1
195                 msg     hb
196                 alg     enum(BlockCipherAlgInfo, "alg")
197                 key     obj
198                 mode    enum(BlockCipherModeInfo, "mode")
199                 iv      hb
200                 =>      hb
201         prop    -1
202                 prop    enum(BlockCipherPropInfo, "prop")
203                 alg     enum(BlockCipherAlgInfo, "alg")
204                 =>      int
205
206 EntryExtra BlockCipherOp
207         int encrypt;