chiark / gitweb /
56fd4ab2ae4e926ac636704c9e5df75fd3b9a952
[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         pkcs5
135                 meth    enum(PadMethod, "hbytes pad subcommand")
136                 v       hbv
137                 block   obj
138                 =>      int
139         blockcipher
140                 op      enum(BlockCipherOp, "op")
141                 ...     obj
142         hash
143                 alg     enum(HashAlgInfo, "hash alg")
144                 message hb
145                 =>      hb
146         hmac
147                 alg     enum(HashAlgInfo, "hash alg for hmac")
148                 message hb
149                 key     obj
150                 ?maclen obj
151                 =>      hb
152         hash-prop
153                 prop    enum(HashAlgPropInfo, "prop")
154                 alg     enum(HashAlgInfo, "alg")
155                 =>      int
156
157 Table dgram_socket DgramSocket_SubCommand
158         create
159                 local   sockaddr
160                 =>      sockid
161         close
162                 sock    sockid
163         transmit
164                 sock    sockid
165                 data    hb
166                 remote  sockaddr
167         on-receive
168                 sock    sockid
169                 ?script obj
170
171 Table blockcipherop BlockCipherOp
172         e       1
173                 v       hbv
174                 alg     enum(BlockCipherAlgInfo, "alg")
175                 key     obj
176                 mode    enum(BlockCipherModeInfo, "mode")
177                 ?iv     hb
178                 =>      hb
179         d       0
180                 v       hbv
181                 alg     enum(BlockCipherAlgInfo, "alg")
182                 key     obj
183                 mode    enum(BlockCipherModeInfo, "mode")
184                 ?iv     hb
185                 =>      hb
186         mac     -1
187                 msg     hb
188                 alg     enum(BlockCipherAlgInfo, "alg")
189                 key     obj
190                 mode    enum(BlockCipherModeInfo, "mode")
191                 iv      hb
192                 =>      hb
193         prop    -1
194                 prop    enum(BlockCipherPropInfo, "prop")
195                 alg     enum(BlockCipherAlgInfo, "alg")
196                 =>      int
197
198 EntryExtra BlockCipherOp
199         int encrypt;