annotate CbC-examples/test2.c @ 158:494b0b89df80 default tip

...
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Mon, 25 May 2020 18:13:55 +0900
parents 365b84b6fe04
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
78
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
1 #define __environment _CbC_environment
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
2 #define __return _CbC_return
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
3
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
4 #include <stdio.h>
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
5 int sender_bit;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
6
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
7 __code (*ret)(int,void *);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
8 void *env;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
9
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
10 struct packet {
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
11 int bit;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
12 char *msg;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
13 __code (*next)();
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
14 };
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
15
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
16 __code print_struct(struct packet pkt)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
17 {
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
18 printf("#0017:bit: %d\n", pkt.bit);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
19 printf("#0018:message: %s\n", pkt.msg);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
20 goto ret(0, env);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
21 }
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
22
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
23 __code initSender(int init_bit, struct packet pkt)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
24 {
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
25 sender_bit = init_bit;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
26 pkt.next = print_struct;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
27 printf("#0026:initSender bit: %d\n", pkt.bit);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
28 printf("#0027:initSender message: %s\n", pkt.msg);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
29 printf("#0028:sender_bit: %d\n", sender_bit);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
30 goto print_struct(pkt);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
31 }
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
32
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
33 int main(void)
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
34 {
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
35 struct packet pkt;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
36 pkt.bit = 1;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
37 pkt.msg = "hogehoge";
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
38 pkt.next = initSender;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
39 ret = __return;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
40 env = __environment;
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
41 printf("#0040:main bit: %d\n", pkt.bit);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
42 printf("#0041:main message: %s\n", pkt.msg);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
43 goto initSender(0, pkt);
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
44 }
365b84b6fe04 more examples
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
diff changeset
45