source: rtems/c/src/exec/libcsupport/src/libio_sockets.c @ 3ba74c73

4.104.114.84.95
Last change on this file since 3ba74c73 was 3ba74c73, checked in by Joel Sherrill <joel.sherrill@…>, on 11/01/00 at 21:08:14

2000-11-01 Joel Sherrill <joel@…>

  • include/Makefile.am, include/rtems/libio_.h, libc/Makefile.am, libc/assoc.c, libc/assocnamebad.c, libc/base_fs.c, libc/cfsetispeed.c, libc/cfsetospeed.c, libc/chdir.c, libc/chmod.c, libc/chown.c, libc/close.c, libc/closedir.c, libc/dup2.c, libc/error.c, libc/eval.c, libc/fchdir.c, libc/fchmod.c, libc/fcntl.c, libc/fdatasync.c, libc/fpathconf.c, libc/fstat.c, libc/fsync.c, libc/ftruncate.c, libc/getdents.c, libc/ioctl.c, libc/libio.c, libc/libio_sockets.c, libc/link.c, libc/lseek.c, libc/malloc.c, libc/mallocfreespace.c, libc/mknod.c, libc/mount.c, libc/newlibc.c, libc/no_libc.c, libc/open.c, libc/read.c, libc/readlink.c, libc/rmdir.c, libc/stat.c, libc/symlink.c, libc/tcsetattr.c, libc/telldir.c, libc/ttyname.c, libc/ttyname_r.c, libc/umask.c, libc/unlink.c, libc/unmount.c, libc/utime.c, libc/write.c: assoc.h, error.h, libio_.h, libio.h, and libcsupport.h moved from libc to lib/include/rtems and now must be referenced as <rtems/XXX.h>.
  • include/rtems/Makefile.am, include/rtems/.cvsignore: New file.
  • include/rtems/assoc.h, include/rtems/error.h, include/rtems/libcsupport.h, include/rtems/libio.h, include/rtems/libio_.h: New/moved files.
  • Property mode set to 100644
File size: 1.3 KB
Line 
1/*
2 *  This file contains the support infrastructure used to manage the
3 *  table of integer style file descriptors used by the socket calls.
4 *
5 *  COPYRIGHT (c) 1989-1999.
6 *  On-Line Applications Research Corporation (OAR).
7 *
8 *  The license and distribution terms for this file may be
9 *  found in the file LICENSE in this distribution or at
10 *  http://www.OARcorp.com/rtems/license.html.
11 *
12 *  $Id$
13 */
14
15#include <rtems/libio_.h>             /* libio_.h pulls in rtems */
16#include <rtems.h>
17
18#include <errno.h>
19
20/*
21 * Convert an RTEMS file descriptor to a BSD socket pointer.
22 */
23
24struct socket *rtems_bsdnet_fdToSocket(
25  int fd
26)
27{
28  rtems_libio_t *iop;
29
30  if ((unsigned32)fd >= rtems_libio_number_iops) {
31    errno = EBADF;
32    return NULL;
33  }
34  iop = &rtems_libio_iops[fd];
35  if (iop->data1 == NULL)
36    errno = EBADF;
37  return iop->data1;
38}
39
40/*
41 * Create an RTEMS file descriptor for a socket
42 */
43
44int rtems_bsdnet_makeFdForSocket(
45  void *so,
46  const rtems_filesystem_file_handlers_r *h
47)
48{
49  rtems_libio_t *iop;
50  int fd;
51
52  iop = rtems_libio_allocate();
53  if (iop == 0) {
54      errno = ENFILE;
55      return -1;
56  }
57  fd = iop - rtems_libio_iops;
58  iop->flags |= LIBIO_FLAGS_WRITE | LIBIO_FLAGS_READ;
59  iop->data0 = fd;
60  iop->data1 = so;
61  iop->handlers = (rtems_filesystem_file_handlers_r *) h;
62  return fd;
63}
Note: See TracBrowser for help on using the repository browser.