More simple fixes.
authorDavid Zhu <yuzhu@cs.berkeley.edu>
Thu, 4 Oct 2012 01:02:51 +0000 (18:02 -0700)
committerDavid Zhu <yuzhu@cs.berkeley.edu>
Thu, 21 Mar 2013 02:09:03 +0000 (19:09 -0700)
Last time the cross compilation did not complete from scratch.

kern/src/net/ip.c
kern/src/socket.c
tools/compilers/gcc-glibc/glibc-2.14.1-ros/sysdeps/ros/accept.c
tools/compilers/gcc-glibc/glibc-2.14.1-ros/sysdeps/ros/listen.c

index d292836..c8f5e45 100644 (file)
@@ -54,7 +54,8 @@ int eth_send(struct pbuf *p, struct in_addr *dest) {
 int ip_output(struct pbuf *p, struct in_addr *src, struct in_addr *dest, 
                                                        uint8_t ttl, uint8_t tos, uint8_t proto) {
        struct pbuf *q;
-       struct ip_hdr *iphdr;   
+       struct ip_hdr *iphdr;
+       printk ("ip output reached\n");
        /* TODO: Check for IP_HDRINCL */
        if (dest->s_addr == IP_HDRINCL) {
                /*send right away since */
index 801251f..1972e40 100644 (file)
@@ -235,7 +235,14 @@ intreg_t sys_connect(struct proc *p, int sock_fd, const struct sockaddr* addr, i
 
 intreg_t sys_send(struct proc *p, int sockfd, const void *buf, size_t len, int flags) {
        printk("sys_send called \n");
-       return len; // indicates success, by returning length
+       struct socket* sock = getsocket(p_proc, fd);
+       const struct sockaddr_in *in_addr = (const struct sockaddr_in *)addr;
+       uint16_t r_port;
+       if (sock == NULL) {
+               set_errno(EBADF);
+               return -1;      
+       }
+       return len;
 
 }
 intreg_t sys_recv(struct proc *p, int sockfd, void *buf, size_t len, int flags) {
index 213dd16..fe96e1c 100644 (file)
@@ -5,8 +5,8 @@
 #include <sys/socket.h>
 #include <ros/syscall.h>
 
-int __accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) {
-       return ros_syscall(SYS_accept, sockfd, addr, addrlen);
+int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen) {
+       return ros_syscall(SYS_accept, sockfd, addr, addrlen, 0, 0, 0);
 }
 
-libc_hidden_def (__accept)
+libc_hidden_def (accept)
index 2203eaf..d3be5f6 100644 (file)
@@ -6,6 +6,6 @@
 #include <ros/syscall.h>
 
 int __listen(int sockfd, int backlog) {
-       return ros_syscall(SYS_listen, sockfd, backlog);
+       return ros_syscall(SYS_listen, sockfd, backlog, 0, 0, 0, 0);
 }
 weak_alias (__listen, listen)