6 #define SIZE_OUT_HEADER (4*4)
8 static inline int call_gpi(int fd, int args_len, int ret_len, int ftn_num, char *args_buf)
11 //volatile int *i = (volatile int*)args_buf;
12 int *i = (int*)args_buf;
14 /* i[0] = pid; ...is filled in by the kernel module for virtio GL */
19 fprintf(stdout, "args_len(%d), ret_len(%d), ftn_num(%d) \n", i[1], i[2], i[3]);
21 ret = write(fd, args_buf, args_len);
22 if( ret != args_len) {
30 int main(int argc, char** argv)
35 char write_buf[4096] = {0};
36 char read_buf[4096] = {0};
39 if((fd = open("/dev/virt_gpi", O_RDWR)) == -1) {
44 if( argc >= 1 && argv[1] != NULL ){
45 ftn_num = atoi(argv[1]);
50 if( argc >= 2 && argv[2] != NULL ){
51 strcpy(write_buf, argv[2]);
54 if(call_gpi(fd, SIZE_OUT_HEADER + strlen(write_buf), sizeof(read_buf), ftn_num, write_buf) <= 0) {
59 if(read(fd, read_buf, sizeof(read_buf)) <= 0){
64 fprintf(stdout, "read_buf[%s] \n", read_buf);