Mercurial > hg > Members > nobuyasu > CbC
view ABP/sender3.c @ 9:18d2a590bc10 draft
add fibonacci
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 03 Jun 2012 22:06:40 +0900 |
parents | 5dc0fa7caa57 |
children |
line wrap: on
line source
#include <stdio.h> extern int comm_bit_s; /* communication bit for sender */ extern int comm_bit_r; /* communication bit for receiver */ extern char *comm_msg; /* communication message */ extern struct queue *list; typedef struct queue *QueuePtr; struct packet { int bit; /* alternating bit */ char **msg; /* messages */ code (*next)(); /* next code segment */ }; extern code schedule(QueuePtr task_list, int i); code s_sendState(struct packet *, int i); code s_receiveState(struct packet *, int i); code s_receiveState(struct packet *pkt, int i) { /* correct bit */ if (pkt->bit == comm_bit_r) { printf("sender: success\n"); pkt->bit = !pkt->bit; i++; // for message increment pkt->next = s_sendState; goto schedule(list, i); /* wrong bit */ } else { printf("sender: failure\n"); pkt->next = s_sendState; goto schedule(list, i); } } code s_sendState(struct packet *pkt, int i) { comm_bit_s = pkt->bit; comm_msg = pkt->msg[i]; pkt->next = s_receiveState; goto schedule(list, i); }