#define TPROT_CLIENT_ACK_ANOTHER_TEST  ((UCHAR)1)
#define TPROT_CLIENT_ACK_DONE_TEST     ((UCHAR)2)
#define TPROT_CLIENT_DONE_1_IOS        ((UCHAR)3)
#define TPROT_CLIENT_DONE_2_IOS        ((UCHAR)4)
#define TPROT_CLIENT_STRTED_1_IOS      ((UCHAR)5)
#define TPROT_CLIENT_STRTED_2_IOS      ((UCHAR)6)
#define TPROT_CLIENT_TRIED_DOOM_WRITE  ((UCHAR)7)
#define TPROT_SRVR_ANOTHER_TEST        ((UCHAR)8)
#define TPROT_SRVR_DONE_TEST           ((UCHAR)9)
#define TPROT_SRVR_SET_NOPASS          ((UCHAR)10)
#define TPROT_SRVR_SET_PASS            ((UCHAR)11)
#define TPROT_SRVR_SET_SNIFF           ((UCHAR)12)
#define TPROT_CLIENT_ACK_SNIFF         ((UCHAR)13)
#define TPROT_CLIENT_DID_SETMASKS      ((UCHAR)14)
#define TPROT_SRVR_SET_SETMASKS        ((UCHAR)15)
#define TPROT_SRVR_WENT_DCDPASS        ((UCHAR)16)
#define TPROT_CLIENT_IOS_STILL_WAITING ((UCHAR)17)
#define TPROT_SRVR_PASSNOPASS          ((UCHAR)18)
#define TPROT_CLIENT_DONE_PASSNOPASS   ((UCHAR)19)
#define TPROT_SRVR_DO_DCDTRANS         ((UCHAR)20)
#define TPROT_CLIENT_DID_DCDTRANS      ((UCHAR)21)
#define TPROT_SRVR_DONE_DCDTRANS       ((UCHAR)22)
#define TPROT_CLIENT_DONE_DCDTRANS     ((UCHAR)23)
#define TPROT_CLIENT_WANTS_BREAK       ((UCHAR)24)
#define TPROT_CLIENT_SHOULDA_BROKE     ((UCHAR)25)
#define TPROT_DONE_BREAK               ((UCHAR)26)
#define TPROT_CLIENT_WANTS_NEWMASK     ((UCHAR)27)
#define TPROT_SRVR_SAYS_DONEWMASK      ((UCHAR)28)
#define TPROT_CLIENT_DONE_NEWMASK      ((UCHAR)29)
#define TPROT_SRVR_HEARD_DONENEWMASK   ((UCHAR)30)
#define TPROT_CLIENT_DONE_NEWWAITMASK  ((UCHAR)31)
#define TPROT_SRVR_HEARD_DONENEWWAITMASK ((UCHAR)32)
#define TPROT_CLIENT_DONE_NEWGETRESULTS ((UCHAR)33)
#define TPROT_REMOTE_SEND_NEW_BREAK    ((UCHAR)34)
#define TPROT_REMOTE_DONE_NEW_BREAK    ((UCHAR)35)

#define FAILURE(e) printf("FAIL: %d/%d\n",e,__LINE__);exit(1)

#define RCVPROT(a,b) RcvProt(a,b,__LINE__)
#define SNDPROT(a,b) SndProt(a,b,__LINE__)

#define MYPIPETIMEOUT (100000000)