Mercurial > ecos
view packages/net/tcpip/current/src/lib/recvfrom.c @ 3292:7f8e529b4d82 default tip
Fix FREESCALE_EDMA_NBYTES_MLOFFYES_MLOFF() so it works with negative offsets.
| author | vae |
|---|---|
| date | Wed, 29 Apr 2015 23:31:48 +0000 |
| parents | 74dbf4c3f2e1 |
| children |
line wrap: on
line source
//========================================================================== // // lib/recvfrom.c // // recvfrom() system call // //========================================================================== // ####BSDALTCOPYRIGHTBEGIN#### // ------------------------------------------- // Portions of this software may have been derived from OpenBSD // or other sources, and if so are covered by the appropriate copyright // and license included herein. // ------------------------------------------- // ####BSDALTCOPYRIGHTEND#### //========================================================================== //#####DESCRIPTIONBEGIN#### // // Author(s): gthomas // Contributors: gthomas // Date: 2000-01-10 // Purpose: // Description: // // //####DESCRIPTIONEND#### // //========================================================================== #include <sys/param.h> #include <cyg/io/file.h> #include <sys/socket.h> #include <sys/socketvar.h> #include <sys/syscallargs.h> ssize_t recvfrom(int s, const void *buf, size_t buflen, int flags, const struct sockaddr *from, socklen_t *fromlen) { struct sys_recvfrom_args args; int res, error; SYSCALLARG(args,s) = s; SYSCALLARG(args,buf) = (void *)buf; SYSCALLARG(args,len) = buflen; SYSCALLARG(args,flags) = flags; SYSCALLARG(args,from) = (struct sockaddr *)from; SYSCALLARG(args,fromlenaddr) = fromlen; error = sys_recvfrom(&args, &res); if (error) { errno = error; return -1; } else { return res; } }
