summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJennifer Averett <jennifer.averett@oarcorp.com>2012-07-18 11:42:04 -0500
committerJennifer Averett <jennifer.averett@oarcorp.com>2012-07-18 11:42:04 -0500
commite4f259143047f4499d585bcbd9493451956cab86 (patch)
treed47c49e5fb23bd035a89f6280604c6d41880d296
parentAdded initilization of pcpu info for cpu0. (diff)
downloadrtems-libbsd-e4f259143047f4499d585bcbd9493451956cab86.tar.bz2
Fixed rtems_bsdnet_makeFdForSocket to work with file system change.
-rw-r--r--rtemsbsd/src/rtems-bsd-syscalls.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/rtemsbsd/src/rtems-bsd-syscalls.c b/rtemsbsd/src/rtems-bsd-syscalls.c
index eb00ef5e..821fcc9c 100644
--- a/rtemsbsd/src/rtems-bsd-syscalls.c
+++ b/rtemsbsd/src/rtems-bsd-syscalls.c
@@ -94,11 +94,7 @@ struct socket *rtems_bsdnet_fdToSocket(
/*
* Create an RTEMS file descriptor for a socket
*/
-
-int rtems_bsdnet_makeFdForSocket(
- void *so,
- const rtems_filesystem_file_handlers_r *h
-)
+static int rtems_bsdnet_makeFdForSocket (void *so)
{
rtems_libio_t *iop;
int fd;
@@ -111,8 +107,9 @@ int rtems_bsdnet_makeFdForSocket(
iop->flags |= LIBIO_FLAGS_WRITE | LIBIO_FLAGS_READ;
iop->data0 = fd;
iop->data1 = so;
- iop->pathinfo.handlers = h;
- iop->pathinfo.mt_entry->ops = &rtems_filesystem_operations_default;
+ iop->pathinfo.handlers = &socket_handlers;
+ iop->pathinfo.mt_entry = &rtems_filesystem_null_mt_entry;
+ rtems_filesystem_location_add_to_mt_entry(&iop->pathinfo);
return fd;
}
@@ -214,7 +211,7 @@ socket (int domain, int type, int protocol)
/* An extra reference on `fp' has been held for us by falloc(). */
error = socreate(domain, &so, type, protocol, td->td_ucred, td);
if (error == 0) {
- fd = rtems_bsdnet_makeFdForSocket (so, &socket_handlers);
+ fd = rtems_bsdnet_makeFdForSocket (so);
if (fd < 0)
{
soclose (so);
@@ -461,7 +458,7 @@ kern_accept(struct thread *td, int s, struct sockaddr **name, socklen_t *namelen
TAILQ_REMOVE(&head->so_comp, so, so_list);
head->so_qlen--;
- fd = rtems_bsdnet_makeFdForSocket (so, &socket_handlers);
+ fd = rtems_bsdnet_makeFdForSocket (so);
if (fd < 0) {
TAILQ_INSERT_HEAD(&head->so_comp, so, so_list);
head->so_qlen++;