7 #define uint32 uint32_t
8 #define uint64 uint64_t
12 uint32 rv = write(fd, &c, 1);
14 printf("write ret: %d\n", rv);
16 printf("send: %x\n", c);
19 void send(int dest, uint64 i) {
20 sendc((dest >> 8) & 0xff);
21 sendc((dest >> 0) & 0xff);
22 sendc((i >>32) & 0xff);
23 sendc((i >>24) & 0xff);
24 sendc((i >>16) & 0xff);
25 sendc((i >> 8) & 0xff);
26 sendc((i >> 0) & 0xff);
31 uint32 rv = read(fd, &c, 1);
33 printf("read ret: %d\n", rv);
40 | (((uint64)recvc()) << 32)
41 | (((uint64)recvc()) << 24)
42 | (((uint64)recvc()) << 16)
43 | (((uint64)recvc()) << 8)
44 | (((uint64)recvc()) << 0)
49 void sendbits(int num, int dat) {
52 sendc((dat>>(num>=8 ? (num-8):0)) & 0xff);
57 uint64_t inst(int boxname, int tokenin, int datain, int latch, int dataout, int tokenout, int count, int dest) {
59 ret |= dest; ret <<= 7;
60 ret |= count; ret <<= 1;
61 ret |= tokenout; ret <<= 1;
62 ret |= dataout; ret <<= 1;
63 ret |= latch; ret <<= 1;
64 ret |= datain; ret <<= 1;
65 ret |= tokenin; ret <<= 11;
70 int main(int argc, char** argv) {
76 fd = open(argv[1], O_RDWR);
77 printf("open %s = %d\n", argv[1], fd);
80 int fd2 = open(argv[2], O_RDWR);
81 printf("open %s = %d\n", argv[2], fd2);
89 printf("\n===================================================================\n\n");
94 temp = temp << (j * 8);
95 result = result | temp;
97 printf("%lld = 0x%llx\n", result, result);