#include <string.h>
#include "pipe.h"
-static int _handle_msg(struct cxmsg *msg)
+ssize_t sys_read(const pid_t, struct cxio_read*);
+ssize_t sys_write(const pid_t, struct cxio_write*);
+
+static void _handle_msg(struct cxmsg *msg)
{
- int ret_val;
char str[128];
int len;
switch(msg->cm_type) {
case CXIO_READ:
+ memset(str, 0, sizeof(str));
+ len = snprintf(str, sizeof(str), "CXIO_READ from pid %u\n", msg->cm_src);
+ debug(str, len);
+
+ sys_read(msg->cm_src, (struct cxio_read*)msg->cm_data);
+ break;
+
case CXIO_WRITE:
+ memset(str, 0, sizeof(str));
+ len = snprintf(str, sizeof(str), "CXIO_WRITE from pid %u\n", msg->cm_src);
+ debug(str, len);
+
+ sys_write(msg->cm_src, (struct cxio_write*)msg->cm_data);
+ break;
+
case CXIO_OPEN:
case CXIO_CLOSE:
default:
len = snprintf(str, sizeof(str), "Unhandled message TYPE=0x%x SRC=%u\n",
msg->cm_type, msg->cm_src);
debug(str, len);
-
- ret_val = -ENOSYS;
break;
case CXIO_PIPE:
- sys_pipe(msg->cm_src, (struct cxio_pipe*)msg->cm_data);
memset(str, 0, sizeof(str));
- len = snprintf(str, sizeof(str), "CXIO_PIPE from %u\n", msg->cm_src);
+ len = snprintf(str, sizeof(str), "CXIO_PIPE from pid %u\n", msg->cm_src);
debug(str, len);
- ret_val = -ENOSYS;
+
+ sys_pipe(msg->cm_src, (struct cxio_pipe*)msg->cm_data);
break;
}
- return(ret_val);
+ return;
}
int main(int argc, char *argv[])