svn commit: r250281 - in user/dchagin/lemul/sys: amd64/linux32 compat/linux i386/linux

Dmitry Chagin dchagin at FreeBSD.org
Sun May 5 17:41:59 UTC 2013


Author: dchagin
Date: Sun May  5 17:41:58 2013
New Revision: 250281
URL: http://svnweb.freebsd.org/changeset/base/250281

Log:
  Get ready to commit x86_64 Linux emulation.
  x86_64 Linux do not use multiplexing on ipc system calls.
  Move struct ipc_perm definition to the MD path as it differs for 64 and
  32 bit platform.

Modified:
  user/dchagin/lemul/sys/amd64/linux32/linux.h
  user/dchagin/lemul/sys/compat/linux/linux_ipc.c
  user/dchagin/lemul/sys/compat/linux/linux_ipc.h
  user/dchagin/lemul/sys/i386/linux/linux.h

Modified: user/dchagin/lemul/sys/amd64/linux32/linux.h
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux32/linux.h	Sun May  5 17:27:58 2013	(r250280)
+++ user/dchagin/lemul/sys/amd64/linux32/linux.h	Sun May  5 17:41:58 2013	(r250281)
@@ -568,6 +568,16 @@ union l_semun {
 	l_uintptr_t	__pad;
 } __packed;
 
+struct l_ipc_perm {
+	l_key_t		key;
+	l_uid16_t	uid;
+	l_gid16_t	gid;
+	l_uid16_t	cuid;
+	l_gid16_t	cgid;
+	l_ushort	mode;
+	l_ushort	seq;
+};
+
 /*
  * Socket defines
  */

Modified: user/dchagin/lemul/sys/compat/linux/linux_ipc.c
==============================================================================
--- user/dchagin/lemul/sys/compat/linux/linux_ipc.c	Sun May  5 17:27:58 2013	(r250280)
+++ user/dchagin/lemul/sys/compat/linux/linux_ipc.c	Sun May  5 17:41:58 2013	(r250281)
@@ -117,16 +117,6 @@ bsd_to_linux_shm_info( struct shm_info *
 	lpp->swap_successes = bpp->swap_successes ;
 }
 
-struct l_ipc_perm {
-	l_key_t		key;
-	l_uid16_t	uid;
-	l_gid16_t	gid;
-	l_uid16_t	cuid;
-	l_gid16_t	cgid;
-	l_ushort	mode;
-	l_ushort	seq;
-};
-
 static void
 linux_to_bsd_ipc_perm(struct l_ipc_perm *lpp, struct ipc_perm *bpp)
 {

Modified: user/dchagin/lemul/sys/compat/linux/linux_ipc.h
==============================================================================
--- user/dchagin/lemul/sys/compat/linux/linux_ipc.h	Sun May  5 17:27:58 2013	(r250280)
+++ user/dchagin/lemul/sys/compat/linux/linux_ipc.h	Sun May  5 17:41:58 2013	(r250281)
@@ -82,7 +82,7 @@
 #define	LINUX_IPC_64	0x0100	/* New version (support 32-bit UIDs, bigger
 				   message sizes, etc. */
 
-#if defined(__i386__) || defined(__amd64__)
+#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32))
 
 struct linux_msgctl_args 
 {
@@ -177,6 +177,6 @@ int linux_shmctl(struct thread *, struct
 int linux_shmdt(struct thread *, struct linux_shmdt_args *);
 int linux_shmget(struct thread *, struct linux_shmget_args *);
 
-#endif	/* __i386__ || __amd64__ */
+#endif	/* __i386__ || (__amd64__ && COMPAT_LINUX32) */
 
 #endif /* _LINUX_IPC_H_ */

Modified: user/dchagin/lemul/sys/i386/linux/linux.h
==============================================================================
--- user/dchagin/lemul/sys/i386/linux/linux.h	Sun May  5 17:27:58 2013	(r250280)
+++ user/dchagin/lemul/sys/i386/linux/linux.h	Sun May  5 17:41:58 2013	(r250281)
@@ -545,6 +545,16 @@ union l_semun {
 	void		*__pad;
 };
 
+struct l_ipc_perm {
+	l_key_t		key;
+	l_uid16_t	uid;
+	l_gid16_t	gid;
+	l_uid16_t	cuid;
+	l_gid16_t	cgid;
+	l_ushort	mode;
+	l_ushort	seq;
+};
+
 /*
  * Socket defines
  */


More information about the svn-src-user mailing list