/* example of a simple SCU transfer */ #include #include #include #define BUFFERSIZE 80 int main(){ SCUDirArgIR send, receive; char *mybuffer1,*mybuffer2; DefaultSetup(); /* allocate and fill communication buffers */ mybuffer1 = (char *) qalloc(QNONCACHE|QCOMMS|QFAST,BUFFERSIZE); mybuffer2 = (char *) qalloc(QNONCACHE|QCOMMS|QFAST,BUFFERSIZE); sprintf(mybuffer1,"hello world from processor %d",UniqueID()); sprintf(mybuffer2,"incoming message will go here"); printf("mybuffer1: %s\nmybuffer2: %s\n",mybuffer1,mybuffer2); /* transfer buffer1 to buffer2 down the W direction */ send.Init(mybuffer1,SCU_WM,SCU_SEND,BUFFERSIZE,1,8); receive.Init(mybuffer2,SCU_WP,SCU_REC,BUFFERSIZE,1,8); send.StartTrans(); receive.StartTrans(); send.TransComplete(); receive.TransComplete(); printf("mybuffer1: %s\nmybuffer2: %s\n",mybuffer1,mybuffer2); qfree(mybuffer1); qfree(mybuffer2); return 0; }