chiark / gitweb /
ulong improved; clock arithmetic hbytes abolished; secnet responder implemented and...
[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         subtract
44                 a       ulong
45                 b       ulong
46                 =>      ulong
47         compare
48                 a       ulong
49                 b       ulong
50                 =>      int
51         shift
52                 right   charfrom("lr", "shift direction")
53                 v       ulong
54                 bits    int
55                 =>      ulong
56         ul2bitfields
57                 value   ulong
58                 ...     obj
59                 =>      int
60         bitfields2ul
61                 base    ulong
62                 ...     obj
63                 =>      ulong
64
65 Table hbytes HBytes_SubCommand
66         raw2h
67                 binary  obj
68                 =>      hb
69         h2raw
70                 hex     hb
71                 =>      obj
72         ushort2h
73                 value   long
74                 =>      hb
75         h2ushort
76                 hex     hb
77                 =>      long
78         length
79                 v       hb
80                 =>      int
81         compare
82                 a       hb
83                 b       hb
84                 =>      int
85         range
86                 v       hb
87                 start   int
88                 size    int
89                 =>      hb
90         prepend
91                 v       hbv
92                 ...     str
93         append
94                 v       hbv
95                 ...     str
96         rep-info
97                 v       obj
98                 =>      obj
99         concat
100                 ...     str
101                 =>      hb
102         unprepend
103                 v       hbv
104                 length  int
105                 =>      hb
106         unappend
107                 v       hbv
108                 length  int
109                 =>      hb
110         chopto
111                 v       hbv
112                 length  int
113                 =>      hb
114         overwrite
115                 v       hbv
116                 start   int
117                 sub     hb
118         trimleft
119                 v       hbv
120         zeroes
121                 length  int
122                 =>      hb
123         repeat
124                 v       hb
125                 count   int
126                 =>      hb
127         random
128                 length  int
129                 =>      hb
130         pkcs5
131                 meth    enum(PadMethod, "hbytes pad subcommand")
132                 v       hbv
133                 block   obj
134                 =>      int
135         blockcipher
136                 op      enum(BlockCipherOp, "op")
137                 ...     obj
138         hash
139                 alg     enum(HashAlgInfo, "hash alg")
140                 message hb
141                 =>      hb
142         hmac
143                 alg     enum(HashAlgInfo, "hash alg for hmac")
144                 message hb
145                 key     obj
146                 ?maclen obj
147                 =>      hb
148
149 Table dgram_socket DgramSocket_SubCommand
150         create
151                 local   sockaddr
152                 =>      sockid
153         close
154                 sock    sockid
155         transmit
156                 sock    sockid
157                 data    hb
158                 remote  sockaddr
159         on-receive
160                 sock    sockid
161                 ?script obj
162
163 Table blockcipherop BlockCipherOp
164         e       1
165                 v       hbv
166                 alg     enum(BlockCipherAlgInfo, "alg")
167                 key     obj
168                 mode    enum(BlockCipherModeInfo, "mode")
169                 ?iv     hb
170                 =>      hb
171         d       0
172                 v       hbv
173                 alg     enum(BlockCipherAlgInfo, "alg")
174                 key     obj
175                 mode    enum(BlockCipherModeInfo, "mode")
176                 ?iv     hb
177                 =>      hb
178         mac     -1
179                 msg     hb
180                 alg     enum(BlockCipherAlgInfo, "alg")
181                 key     obj
182                 mode    enum(BlockCipherModeInfo, "mode")
183                 iv      hb
184                 =>      hb
185
186 EntryExtra BlockCipherOp
187         int encrypt;