#include <stdio.h>
#include "enet_cs.h"
int NODE1_num, NODE2_num;
extern int node;
extern FILE *fp;
int critical_section()
{
switch (node) {
case NODE0:
NODE1_num = cs_read (NODE1_LOC);
NODE2_num = cs_read (NODE2_LOC);
if ( (NODE1_num == READY) &&
(NODE2_num == READY) ) {
NODE1 num = CLEAR;
cs_write ( NODE1_LOC, NODE1_num);
NODE2_num = CLEAR;
cs_write ( NODE2_LOC, NODE2_num);
return(STOP);
} else {
return(NORMAL);
}
break;
case NODE1:
NODE1_num = READY;
cs_write ( NODE1_LOC, NODE1_num);
return(STOP);
break;
case NODE2:
NODE2_num = READY;
cs_write ( NODE2_LOC, NODE2_num);
return(STOP);
break;
default:
printf ("Error: invalid processor\n");
exit(0);
break;
}
}
/* End of File */