[rtems commit] Move <memory.h> and <sys/uio.h> to non-networking directory

Joel Sherrill joel at rtems.org
Wed Jan 23 19:33:30 UTC 2013


Module:    rtems
Branch:    master
Commit:    bb679b31119f59a0c27609f606967b4ba326dae4
Changeset: http://git.rtems.org/rtems/commit/?id=bb679b31119f59a0c27609f606967b4ba326dae4

Author:    Joel Sherrill <joel.sherrill at oarcorp.com>
Date:      Wed Jan 23 13:09:18 2013 -0600

Move <memory.h> and <sys/uio.h> to non-networking directory

These two header files were installed from libnetworking even
when networking was disabled. This patch moves them to a
non-networking location and updates uio.h to match the FreeBSD 8.x
source being used for the USB stack and TCP/IP stack upgrade.

 - cpukit/include/memory.h
   Move from cpukit/libnetworking/memory.h. No changes

 - cpukit/include/sys/uio.h
   Move from cpukit/libnetworking/sys/uio.h. Replace with FreeBSD 8.x version.

 - cpukit/include/sys/_iovec.h
   New. FreeBSD 8.x file supporting <sys/uio.h>.

 - cpukit/Makefile.am
   Reflect movement of <memory.h> and <sys/uio.h>.

 - cpukit/preinstall.am
   Regenerate

 - cpukit/libnetworking/nfs/bootp_subr.c
   Eliminate use of uio_procp field no longer in FreeBSD structure. This
   field was set and never read so eliminating the set has no impact.

---

 cpukit/Makefile.am                          |    5 +-
 cpukit/include/memory.h                     |    7 +++
 cpukit/include/sys/_iovec.h                 |   58 ++++++++++++++++++++++++++
 cpukit/{libnetworking => include}/sys/uio.h |   59 +++++++++++++++++++--------
 cpukit/libnetworking/memory.h               |    7 ---
 cpukit/libnetworking/nfs/bootp_subr.c       |    4 ++
 cpukit/preinstall.am                        |    8 +++-
 7 files changed, 120 insertions(+), 28 deletions(-)

diff --git a/cpukit/Makefile.am b/cpukit/Makefile.am
index 5b11e7e..fb8cd53 100644
--- a/cpukit/Makefile.am
+++ b/cpukit/Makefile.am
@@ -42,7 +42,7 @@ if NEWLIB
 include_sysdir = $(includedir)/sys
 include_sys_HEADERS =
 
-include_HEADERS += libnetworking/memory.h
+include_HEADERS += include/memory.h
 include_HEADERS += libmd/md4.h
 include_HEADERS += libmd/md5.h
 
@@ -55,7 +55,8 @@ include_sys_HEADERS += libcsupport/include/sys/ttycom.h
 include_sys_HEADERS += libcsupport/include/sys/termios.h
 include_sys_HEADERS += libcsupport/include/sys/utsname.h
 
-include_sys_HEADERS += libnetworking/sys/uio.h
+include_sys_HEADERS += include/sys/uio.h
+include_sys_HEADERS += include/sys/_iovec.h
 include_sys_HEADERS += include/sys/priority.h
 
 if LIBNETWORKING
diff --git a/cpukit/include/memory.h b/cpukit/include/memory.h
new file mode 100644
index 0000000..99fdb5e
--- /dev/null
+++ b/cpukit/include/memory.h
@@ -0,0 +1,7 @@
+/**
+ * @file memory.h
+ *
+ * Dummy include file for FreeBSD routines
+ */
+
+#include <string.h>
diff --git a/cpukit/include/sys/_iovec.h b/cpukit/include/sys/_iovec.h
new file mode 100644
index 0000000..a6ca683
--- /dev/null
+++ b/cpukit/include/sys/_iovec.h
@@ -0,0 +1,58 @@
+/*-
+ * Copyright (c) 1982, 1986, 1993, 1994
+ *	The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ *	@(#)uio.h	8.5 (Berkeley) 2/22/94
+ * $FreeBSD$
+ */
+
+#ifndef _SYS__IOVEC_HH_
+#define	_SYS__IOVEC_HH_
+
+#include <sys/_types.h>
+
+#ifndef _SIZE_T_DECLARED
+typedef	__size_t	size_t;
+#define	_SIZE_T_DECLARED
+#endif
+
+#ifdef __rtems__
+#ifndef __IOVEC_DEFINED
+#define __IOVEC_DEFINED
+struct iovec {
+	void	*iov_base;	/* Base address. */
+	size_t	 iov_len;	/* Length. */
+};
+#endif /* __IOVEC_DEFINED */
+#else
+struct iovec {
+	void	*iov_base;	/* Base address. */
+	size_t	 iov_len;	/* Length. */
+};
+#endif /* rtems */
+
+#endif /* !_SYS__IOVEC_HH_ */
diff --git a/cpukit/libnetworking/sys/uio.h b/cpukit/include/sys/uio.h
similarity index 71%
rename from cpukit/libnetworking/sys/uio.h
rename to cpukit/include/sys/uio.h
index 71e09a2..56956f0 100644
--- a/cpukit/libnetworking/sys/uio.h
+++ b/cpukit/include/sys/uio.h
@@ -1,4 +1,4 @@
-/*
+/*-
  * Copyright (c) 1982, 1986, 1993, 1994
  *	The Regents of the University of California.  All rights reserved.
  *
@@ -27,23 +27,30 @@
  * SUCH DAMAGE.
  *
  *	@(#)uio.h	8.5 (Berkeley) 2/22/94
- * $FreeBSD: src/sys/sys/uio.h,v 1.40 2006/11/29 19:08:45 alfred Exp $
+ * $FreeBSD$
  */
 
-
-#ifndef _SYS_UIO_H_
-#define	_SYS_UIO_H_
+#ifndef _SYS_UIO_HH_
+#define	_SYS_UIO_HH_
 
 #include <sys/cdefs.h>
+#ifdef __rtems__
 #include <sys/types.h>
+#endif /* __rtems__ */
+#include <sys/_types.h>
+#include <sys/_iovec.h>
 
-/*
- *  POSIX compliant iovec definition
- */
-struct iovec {
-  void    *iov_base;  /* pointer to data to be written */
-  size_t   iov_len;   /* length of this data block */
-};
+#ifndef __rtems__
+#ifndef _SSIZE_T_DECLARED
+typedef	__ssize_t	ssize_t;
+#define	_SSIZE_T_DECLARED
+#endif
+
+#ifndef _OFF_T_DECLARED
+typedef	__off_t	off_t;
+#define	_OFF_T_DECLARED
+#endif
+#endif /* !__rtems__ */
 
 #if __BSD_VISIBLE
 enum	uio_rw { UIO_READ, UIO_WRITE };
@@ -65,11 +72,7 @@ struct uio {
 	ssize_t	uio_resid;		/* remaining bytes to process */
 	enum	uio_seg uio_segflg;	/* address space */
 	enum	uio_rw uio_rw;		/* operation */
-#if !defined(__rtems__)
 	struct	thread *uio_td;		/* owner */
-#else
-	struct	proc *uio_procp;
-#endif /* !__rtems__ */
 };
 
 /*
@@ -85,15 +88,37 @@ struct uio {
  */
 #define UIO_MAXIOV	1024		/* max 1K of iov's */
 
+struct vm_object;
+struct vm_page;
+
+struct uio *cloneuio(struct uio *uiop);
+int	copyinfrom(const void * __restrict src, void * __restrict dst,
+	    size_t len, int seg);
+int	copyiniov(struct iovec *iovp, u_int iovcnt, struct iovec **iov,
+	    int error);
+int	copyinstrfrom(const void * __restrict src, void * __restrict dst,
+	    size_t len, size_t * __restrict copied, int seg);
+int	copyinuio(struct iovec *iovp, u_int iovcnt, struct uio **uiop);
+void	uio_yield(void);
 int	uiomove(void *cp, int n, struct uio *uio);
+int	uiomove_frombuf(void *buf, int buflen, struct uio *uio);
+#ifndef __rtems__
+int	uiomove_fromphys(struct vm_page *ma[], vm_offset_t offset, int n,
+	    struct uio *uio);
+#endif /* !__rtems__ */
+int	uiomoveco(void *cp, int n, struct uio *uio, int disposable);
 
 #else /* !_KERNEL */
 
 __BEGIN_DECLS
 ssize_t	readv(int, const struct iovec *, int);
 ssize_t	writev(int, const struct iovec *, int);
+#if __BSD_VISIBLE
+ssize_t	preadv(int, const struct iovec *, int, off_t);
+ssize_t	pwritev(int, const struct iovec *, int, off_t);
+#endif
 __END_DECLS
 
 #endif /* _KERNEL */
 
-#endif /* !_SYS_UIO_H_ */
+#endif /* !_SYS_UIO_HH_ */
diff --git a/cpukit/libnetworking/memory.h b/cpukit/libnetworking/memory.h
deleted file mode 100644
index ee8bd40..0000000
--- a/cpukit/libnetworking/memory.h
+++ /dev/null
@@ -1,7 +0,0 @@
-/**
- * @file
- *
- * @brief Dummy Include File for FreeBSD Routines
- */
-
-#include <string.h>
diff --git a/cpukit/libnetworking/nfs/bootp_subr.c b/cpukit/libnetworking/nfs/bootp_subr.c
index 0645b89..911e322 100644
--- a/cpukit/libnetworking/nfs/bootp_subr.c
+++ b/cpukit/libnetworking/nfs/bootp_subr.c
@@ -380,7 +380,9 @@ bootpc_call(
 		auio.uio_rw = UIO_WRITE;
 		auio.uio_offset = 0;
 		auio.uio_resid = sizeof(*call);
+#ifndef __rtems__
 		auio.uio_procp = procp;
+#endif
 		error = sosend(so, nam, &auio, NULL, NULL, 0);
 		if (error) {
 			printf("bootpc_call: sosend: %d\n", error);
@@ -414,7 +416,9 @@ bootpc_call(
 			auio.uio_rw = UIO_READ;
 			auio.uio_offset = 0;
 			auio.uio_resid = sizeof(*reply);
+#ifndef __rtems__
 			auio.uio_procp = procp;
+#endif
 			
 			rcvflg = 0;
 			error = soreceive(so, NULL, &auio, NULL, NULL, &rcvflg);
diff --git a/cpukit/preinstall.am b/cpukit/preinstall.am
index 26b90ec..d1e1f87 100644
--- a/cpukit/preinstall.am
+++ b/cpukit/preinstall.am
@@ -43,7 +43,7 @@ $(PROJECT_INCLUDE)/sys/$(dirstamp):
 	@: > $(PROJECT_INCLUDE)/sys/$(dirstamp)
 PREINSTALL_DIRS += $(PROJECT_INCLUDE)/sys/$(dirstamp)
 
-$(PROJECT_INCLUDE)/memory.h: libnetworking/memory.h $(PROJECT_INCLUDE)/$(dirstamp)
+$(PROJECT_INCLUDE)/memory.h: include/memory.h $(PROJECT_INCLUDE)/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/memory.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/memory.h
 
@@ -87,10 +87,14 @@ $(PROJECT_INCLUDE)/sys/utsname.h: libcsupport/include/sys/utsname.h $(PROJECT_IN
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/utsname.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/utsname.h
 
-$(PROJECT_INCLUDE)/sys/uio.h: libnetworking/sys/uio.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
+$(PROJECT_INCLUDE)/sys/uio.h: include/sys/uio.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/uio.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/uio.h
 
+$(PROJECT_INCLUDE)/sys/_iovec.h: include/sys/_iovec.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
+	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/_iovec.h
+PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/_iovec.h
+
 $(PROJECT_INCLUDE)/sys/priority.h: include/sys/priority.h $(PROJECT_INCLUDE)/sys/$(dirstamp)
 	$(INSTALL_DATA) $< $(PROJECT_INCLUDE)/sys/priority.h
 PREINSTALL_FILES += $(PROJECT_INCLUDE)/sys/priority.h




More information about the vc mailing list