Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 12 Feb 2008 20:59:45 GMT
From:      Marcel Moolenaar <marcel@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 135279 for review
Message-ID:  <200802122059.m1CKxjPC044462@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=135279

Change 135279 by marcel@marcel_xcllnt on 2008/02/12 20:59:20

	IFC @135278

Affected files ...

.. //depot/projects/powerpc/include/unistd.h#4 integrate
.. //depot/projects/powerpc/lib/libc/sys/readlink.2#3 integrate
.. //depot/projects/powerpc/sys/compat/freebsd32/freebsd32_proto.h#8 integrate
.. //depot/projects/powerpc/sys/compat/freebsd32/freebsd32_syscall.h#8 integrate
.. //depot/projects/powerpc/sys/compat/freebsd32/freebsd32_syscalls.c#8 integrate
.. //depot/projects/powerpc/sys/compat/freebsd32/freebsd32_sysent.c#8 integrate
.. //depot/projects/powerpc/sys/compat/freebsd32/syscalls.master#8 integrate
.. //depot/projects/powerpc/sys/kern/init_sysent.c#9 integrate
.. //depot/projects/powerpc/sys/kern/syscalls.c#9 integrate
.. //depot/projects/powerpc/sys/kern/syscalls.master#10 integrate
.. //depot/projects/powerpc/sys/kern/systrace_args.c#6 integrate
.. //depot/projects/powerpc/sys/kern/sysv_shm.c#8 integrate
.. //depot/projects/powerpc/sys/kern/vfs_syscalls.c#14 integrate
.. //depot/projects/powerpc/sys/powerpc/aim/machdep.c#4 integrate
.. //depot/projects/powerpc/sys/powerpc/aim/ofw_machdep.c#5 integrate
.. //depot/projects/powerpc/sys/powerpc/conf/NOTES#8 integrate
.. //depot/projects/powerpc/sys/sys/ipc.h#5 integrate
.. //depot/projects/powerpc/sys/sys/shm.h#5 integrate
.. //depot/projects/powerpc/sys/sys/syscall.h#9 integrate
.. //depot/projects/powerpc/sys/sys/syscall.mk#9 integrate
.. //depot/projects/powerpc/sys/sys/syscallsubr.h#5 integrate
.. //depot/projects/powerpc/sys/sys/sysproto.h#9 integrate

Differences ...

==== //depot/projects/powerpc/include/unistd.h#4 (text+ko) ====

@@ -31,7 +31,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)unistd.h	8.12 (Berkeley) 4/27/95
- * $FreeBSD: src/include/unistd.h,v 1.82 2008/01/18 08:48:32 davidxu Exp $
+ * $FreeBSD: src/include/unistd.h,v 1.83 2008/02/12 20:09:03 ru Exp $
  */
 
 #ifndef _UNISTD_H_
@@ -405,7 +405,7 @@
 /* 1003.1-2001 */
 #if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE
 int	 fchown(int, uid_t, gid_t);
-int	 readlink(const char *, char *, int);
+ssize_t	 readlink(const char *, char *, size_t);
 #endif
 #if __POSIX_VISIBLE >= 200112
 int	 gethostname(char *, size_t);

==== //depot/projects/powerpc/lib/libc/sys/readlink.2#3 (text+ko) ====

@@ -26,9 +26,9 @@
 .\" SUCH DAMAGE.
 .\"
 .\"     @(#)readlink.2	8.1 (Berkeley) 6/4/93
-.\" $FreeBSD: src/lib/libc/sys/readlink.2,v 1.14 2007/01/09 00:28:15 imp Exp $
+.\" $FreeBSD: src/lib/libc/sys/readlink.2,v 1.15 2008/02/12 20:09:03 ru Exp $
 .\"
-.Dd June 4, 1993
+.Dd February 12, 2008
 .Dt READLINK 2
 .Os
 .Sh NAME
@@ -38,8 +38,8 @@
 .Lb libc
 .Sh SYNOPSIS
 .In unistd.h
-.Ft int
-.Fn readlink "const char *path" "char *buf" "int bufsiz"
+.Ft ssize_t
+.Fn readlink "const char *path" "char *buf" "size_t bufsiz"
 .Sh DESCRIPTION
 The
 .Fn readlink
@@ -58,7 +58,7 @@
 .Fa buf .
 .Sh RETURN VALUES
 The call returns the count of characters placed in the buffer
-if it succeeds, or a -1 if an error occurs, placing the error
+if it succeeds, or a \-1 if an error occurs, placing the error
 code in the global variable
 .Va errno .
 .Sh ERRORS

==== //depot/projects/powerpc/sys/compat/freebsd32/freebsd32_proto.h#8 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.81 2008/01/20 23:44:24 rwatson Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.95 2008/01/20 23:43:06 rwatson Exp 
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_proto.h,v 1.82 2008/02/12 20:11:54 ru Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.96 2008/02/12 20:09:03 ru Exp 
  */
 
 #ifndef _FREEBSD32_SYSPROTO_H_

==== //depot/projects/powerpc/sys/compat/freebsd32/freebsd32_syscall.h#8 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.79 2008/01/20 23:44:24 rwatson Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.95 2008/01/20 23:43:06 rwatson Exp 
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscall.h,v 1.80 2008/02/12 20:11:54 ru Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.96 2008/02/12 20:09:03 ru Exp 
  */
 
 #define	FREEBSD32_SYS_syscall	0

==== //depot/projects/powerpc/sys/compat/freebsd32/freebsd32_syscalls.c#8 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.70 2008/01/20 23:44:24 rwatson Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.95 2008/01/20 23:43:06 rwatson Exp 
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_syscalls.c,v 1.71 2008/02/12 20:11:54 ru Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.96 2008/02/12 20:09:03 ru Exp 
  */
 
 const char *freebsd32_syscallnames[] = {

==== //depot/projects/powerpc/sys/compat/freebsd32/freebsd32_sysent.c#8 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.80 2008/01/20 23:44:24 rwatson Exp $
- * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.95 2008/01/20 23:43:06 rwatson Exp 
+ * $FreeBSD: src/sys/compat/freebsd32/freebsd32_sysent.c,v 1.81 2008/02/12 20:11:54 ru Exp $
+ * created from FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.96 2008/02/12 20:09:03 ru Exp 
  */
 
 #include "opt_compat.h"

==== //depot/projects/powerpc/sys/compat/freebsd32/syscalls.master#8 (text+ko) ====

@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.95 2008/01/20 23:43:06 rwatson Exp $
+ $FreeBSD: src/sys/compat/freebsd32/syscalls.master,v 1.96 2008/02/12 20:09:03 ru Exp $
 ;	from: @(#)syscalls.master	8.2 (Berkeley) 1/13/94
 ;	from: src/sys/kern/syscalls.master 1.107
 ;
@@ -132,8 +132,8 @@
 55	AUE_REBOOT	NOPROTO	{ int reboot(int opt); }
 56	AUE_REVOKE	NOPROTO	{ int revoke(char *path); }
 57	AUE_SYMLINK	NOPROTO	{ int symlink(char *path, char *link); }
-58	AUE_READLINK	NOPROTO	{ int readlink(char *path, char *buf, \
-				    int count); }
+58	AUE_READLINK	NOPROTO	{ ssize_t readlink(char *path, char *buf, \
+				    size_t count); }
 59	AUE_EXECVE	STD	{ int freebsd32_execve(char *fname, \
 				    u_int32_t *argv, u_int32_t *envv); }
 60	AUE_UMASK	NOPROTO	{ int umask(int newmask); } umask \

==== //depot/projects/powerpc/sys/kern/init_sysent.c#9 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call switch table.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/kern/init_sysent.c,v 1.232 2008/01/20 23:44:23 rwatson Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.236 2008/01/20 23:43:06 rwatson Exp 
+ * $FreeBSD: src/sys/kern/init_sysent.c,v 1.233 2008/02/12 20:11:54 ru Exp $
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.237 2008/02/12 20:09:04 ru Exp 
  */
 
 #include "opt_compat.h"

==== //depot/projects/powerpc/sys/kern/syscalls.c#9 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call names.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/kern/syscalls.c,v 1.216 2008/01/20 23:44:23 rwatson Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.236 2008/01/20 23:43:06 rwatson Exp 
+ * $FreeBSD: src/sys/kern/syscalls.c,v 1.217 2008/02/12 20:11:54 ru Exp $
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.237 2008/02/12 20:09:04 ru Exp 
  */
 
 const char *syscallnames[] = {

==== //depot/projects/powerpc/sys/kern/syscalls.master#10 (text+ko) ====

@@ -1,4 +1,4 @@
- $FreeBSD: src/sys/kern/syscalls.master,v 1.236 2008/01/20 23:43:06 rwatson Exp $
+ $FreeBSD: src/sys/kern/syscalls.master,v 1.237 2008/02/12 20:09:04 ru Exp $
 ;	from: @(#)syscalls.master	8.2 (Berkeley) 1/13/94
 ;
 ; System call name/number master file.
@@ -139,8 +139,8 @@
 55	AUE_REBOOT	STD	{ int reboot(int opt); }
 56	AUE_REVOKE	STD	{ int revoke(char *path); }
 57	AUE_SYMLINK	STD	{ int symlink(char *path, char *link); }
-58	AUE_READLINK	STD	{ int readlink(char *path, char *buf, \
-				    int count); }
+58	AUE_READLINK	STD	{ ssize_t readlink(char *path, char *buf, \
+				    size_t count); }
 59	AUE_EXECVE	STD	{ int execve(char *fname, char **argv, \
 				    char **envv); }
 60	AUE_UMASK	STD	{ int umask(int newmask); } umask umask_args \

==== //depot/projects/powerpc/sys/kern/systrace_args.c#6 (text+ko) ====

@@ -2,7 +2,7 @@
  * System call argument to DTrace register array converstion.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/kern/systrace_args.c,v 1.16 2008/01/20 23:44:23 rwatson Exp $
+ * $FreeBSD: src/sys/kern/systrace_args.c,v 1.17 2008/02/12 20:11:54 ru Exp $
  * This file is part of the DTrace syscall provider.
  */
 
@@ -391,7 +391,7 @@
 		struct readlink_args *p = params;
 		uarg[0] = (intptr_t) p->path; /* char * */
 		uarg[1] = (intptr_t) p->buf; /* char * */
-		iarg[2] = p->count; /* int */
+		uarg[2] = p->count; /* size_t */
 		*n_args = 3;
 		break;
 	}

==== //depot/projects/powerpc/sys/kern/sysv_shm.c#8 (text+ko) ====

@@ -60,7 +60,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/sysv_shm.c,v 1.112 2007/10/24 19:03:55 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/sysv_shm.c,v 1.113 2008/02/12 20:55:03 csjp Exp $");
 
 #include "opt_compat.h"
 #include "opt_sysvipc.h"
@@ -545,6 +545,15 @@
 
 	mtx_lock(&Giant);
 	switch (cmd) {
+	/*
+	 * It is possible that kern_shmctl is being called from the Linux ABI
+	 * layer, in which case, we will need to implement IPC_INFO.  It should
+	 * be noted that other shmctl calls will be funneled through here for
+	 * Linix binaries as well.
+	 *
+	 * NB: The Linux ABI layer will convert this data to structure(s) more
+	 * consistent with the Linux ABI.
+	 */
 	case IPC_INFO:
 		memcpy(buf, &shminfo, sizeof(shminfo));
 		if (bufsz)
@@ -639,6 +648,15 @@
 	struct shmid_ds buf;
 	size_t bufsz;
 	
+	/*
+	 * The only reason IPC_INFO, SHM_INFO, SHM_STAT exists is to support
+	 * Linux binaries.  If we see the call come through the FreeBSD ABI,
+	 * return an error back to the user since we do not to support this.
+	 */
+	if (uap->cmd == IPC_INFO || uap->cmd == SHM_INFO ||
+	    uap->cmd == SHM_STAT)
+		return (EINVAL);
+
 	/* IPC_SET needs to copyin the buffer before calling kern_shmctl */
 	if (uap->cmd == IPC_SET) {
 		if ((error = copyin(uap->buf, &buf, sizeof(struct shmid_ds))))
@@ -651,9 +669,6 @@
 	
 	/* Cases in which we need to copyout */
 	switch (uap->cmd) {
-	case IPC_INFO:
-	case SHM_INFO:
-	case SHM_STAT:
 	case IPC_STAT:
 		error = copyout(&buf, uap->buf, bufsz);
 		break;

==== //depot/projects/powerpc/sys/kern/vfs_syscalls.c#14 (text+ko) ====

@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.448 2008/01/13 14:44:10 attilio Exp $");
+__FBSDID("$FreeBSD: src/sys/kern/vfs_syscalls.c,v 1.449 2008/02/12 20:09:04 ru Exp $");
 
 #include "opt_compat.h"
 #include "opt_mac.h"
@@ -2307,7 +2307,7 @@
 struct readlink_args {
 	char	*path;
 	char	*buf;
-	int	count;
+	size_t	count;
 };
 #endif
 int
@@ -2316,7 +2316,7 @@
 	register struct readlink_args /* {
 		char *path;
 		char *buf;
-		int count;
+		size_t count;
 	} */ *uap;
 {
 
@@ -2326,7 +2326,7 @@
 
 int
 kern_readlink(struct thread *td, char *path, enum uio_seg pathseg, char *buf,
-    enum uio_seg bufseg, int count)
+    enum uio_seg bufseg, size_t count)
 {
 	register struct vnode *vp;
 	struct iovec aiov;

==== //depot/projects/powerpc/sys/powerpc/aim/machdep.c#4 (text+ko) ====

@@ -55,7 +55,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/powerpc/aim/machdep.c,v 1.107 2007/12/25 17:52:00 rwatson Exp $");
+__FBSDID("$FreeBSD: src/sys/powerpc/aim/machdep.c,v 1.108 2008/02/12 20:55:51 marcel Exp $");
 
 #include "opt_compat.h"
 #include "opt_ddb.h"

==== //depot/projects/powerpc/sys/powerpc/aim/ofw_machdep.c#5 (text+ko) ====

@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__FBSDID("$FreeBSD: src/sys/powerpc/aim/ofw_machdep.c,v 1.19 2007/12/19 18:00:49 marcel Exp $");
+__FBSDID("$FreeBSD: src/sys/powerpc/aim/ofw_machdep.c,v 1.20 2008/02/12 20:55:51 marcel Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>

==== //depot/projects/powerpc/sys/powerpc/conf/NOTES#8 (text+ko) ====

@@ -1,4 +1,4 @@
-# $FreeBSD: src/sys/powerpc/conf/NOTES,v 1.11 2007/12/19 18:00:49 marcel Exp $
+# $FreeBSD: src/sys/powerpc/conf/NOTES,v 1.12 2008/02/12 19:38:39 marcel Exp $
 #
 # This file contains machine dependent kernel configuration notes.  For
 # machine independent notes, look in /sys/conf/NOTES.

==== //depot/projects/powerpc/sys/sys/ipc.h#5 (text+ko) ====

@@ -37,7 +37,7 @@
  * SUCH DAMAGE.
  *
  *	@(#)ipc.h	8.4 (Berkeley) 2/19/95
- * $FreeBSD: src/sys/sys/ipc.h,v 1.25 2005/01/07 02:29:23 imp Exp $
+ * $FreeBSD: src/sys/sys/ipc.h,v 1.26 2008/02/12 20:55:03 csjp Exp $
  */
 
 /*
@@ -100,6 +100,9 @@
 #define	IPC_SET		1	/* set options */
 #define	IPC_STAT	2	/* get options */
 #if __BSD_VISIBLE
+/*
+ * For Linux compatability.
+ */
 #define	IPC_INFO	3	/* get info */
 #endif
 

==== //depot/projects/powerpc/sys/sys/shm.h#5 (text+ko) ====

@@ -1,4 +1,4 @@
-/* $FreeBSD: src/sys/sys/shm.h,v 1.24 2005/08/06 07:20:17 csjp Exp $ */
+/* $FreeBSD: src/sys/sys/shm.h,v 1.25 2008/02/12 20:55:03 csjp Exp $ */
 /*	$NetBSD: shm.h,v 1.15 1994/06/29 06:45:17 cgd Exp $	*/
 
 /*-
@@ -56,7 +56,7 @@
 #define	SHM_LOCK	11
 #define	SHM_UNLOCK	12
 
-/* ipcs shmctl commands */
+/* ipcs shmctl commands for Linux compatability */
 #define	SHM_STAT	13
 #define	SHM_INFO	14
 

==== //depot/projects/powerpc/sys/sys/syscall.h#9 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call numbers.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/sys/syscall.h,v 1.213 2008/01/20 23:44:24 rwatson Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.236 2008/01/20 23:43:06 rwatson Exp 
+ * $FreeBSD: src/sys/sys/syscall.h,v 1.214 2008/02/12 20:11:53 ru Exp $
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.237 2008/02/12 20:09:04 ru Exp 
  */
 
 #define	SYS_syscall	0

==== //depot/projects/powerpc/sys/sys/syscall.mk#9 (text+ko) ====

@@ -1,7 +1,7 @@
 # FreeBSD system call names.
 # DO NOT EDIT-- this file is automatically generated.
-# $FreeBSD: src/sys/sys/syscall.mk,v 1.168 2008/01/20 23:44:24 rwatson Exp $
-# created from FreeBSD: src/sys/kern/syscalls.master,v 1.236 2008/01/20 23:43:06 rwatson Exp 
+# $FreeBSD: src/sys/sys/syscall.mk,v 1.169 2008/02/12 20:11:53 ru Exp $
+# created from FreeBSD: src/sys/kern/syscalls.master,v 1.237 2008/02/12 20:09:04 ru Exp 
 MIASM =  \
 	syscall.o \
 	exit.o \

==== //depot/projects/powerpc/sys/sys/syscallsubr.h#5 (text+ko) ====

@@ -22,7 +22,7 @@
  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
- * $FreeBSD: src/sys/sys/syscallsubr.h,v 1.47 2008/01/07 20:05:19 jhb Exp $
+ * $FreeBSD: src/sys/sys/syscallsubr.h,v 1.48 2008/02/12 20:09:04 ru Exp $
  */
 
 #ifndef _SYS_SYSCALLSUBR_H_
@@ -129,7 +129,7 @@
 	    int data);
 int	kern_pwritev(struct thread *td, int fd, struct uio *auio, off_t offset);
 int	kern_readlink(struct thread *td, char *path, enum uio_seg pathseg,
-	    char *buf, enum uio_seg bufseg, int count);
+	    char *buf, enum uio_seg bufseg, size_t count);
 int	kern_readv(struct thread *td, int fd, struct uio *auio);
 int	kern_recvit(struct thread *td, int s, struct msghdr *mp,
 	    enum uio_seg fromseg, struct mbuf **controlp);

==== //depot/projects/powerpc/sys/sys/sysproto.h#9 (text+ko) ====

@@ -2,8 +2,8 @@
  * System call prototypes.
  *
  * DO NOT EDIT-- this file is automatically generated.
- * $FreeBSD: src/sys/sys/sysproto.h,v 1.217 2008/01/20 23:44:24 rwatson Exp $
- * created from FreeBSD: src/sys/kern/syscalls.master,v 1.236 2008/01/20 23:43:06 rwatson Exp 
+ * $FreeBSD: src/sys/sys/sysproto.h,v 1.218 2008/02/12 20:11:54 ru Exp $
+ * created from FreeBSD: src/sys/kern/syscalls.master,v 1.237 2008/02/12 20:09:04 ru Exp 
  */
 
 #ifndef _SYS_SYSPROTO_H_
@@ -236,7 +236,7 @@
 struct readlink_args {
 	char path_l_[PADL_(char *)]; char * path; char path_r_[PADR_(char *)];
 	char buf_l_[PADL_(char *)]; char * buf; char buf_r_[PADR_(char *)];
-	char count_l_[PADL_(int)]; int count; char count_r_[PADR_(int)];
+	char count_l_[PADL_(size_t)]; size_t count; char count_r_[PADR_(size_t)];
 };
 struct execve_args {
 	char fname_l_[PADL_(char *)]; char * fname; char fname_r_[PADR_(char *)];



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200802122059.m1CKxjPC044462>