public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd@arndb.de>
To: Christoph Hellwig <hch@infradead.org>
Cc: Jaswinder Singh Rajput <jaswinder@kernel.org>,
	Ingo Molnar <mingo@elte.hu>, x86 maintainers <x86@kernel.org>,
	Sam Ravnborg <sam@ravnborg.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 2/5 -tip] x86: move common typedefs to asm/posix_types.h
Date: Thu, 18 Jun 2009 15:10:26 +0200	[thread overview]
Message-ID: <200906181510.27464.arnd@arndb.de> (raw)
In-Reply-To: <20090618115101.GA1671@infradead.org>

On Thursday 18 June 2009, Christoph Hellwig wrote:
> 
> On Thu, Jun 18, 2009 at 02:11:24PM +0530, Jaswinder Singh Rajput wrote:
> > 
> > Move common typedefs to asm/posix_types.h for easy maintenance
> 
> I think at this point it would be cleaner to also move the differing
> ones into asm/posix_types.h so that there's just one file to look at for
> the types.

Agreed.

Because of the new asm-gneeric headers, you can also
#include <asm-generic/posix_types.h> for any of the default types and
only override the ones that are x86-specific.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

diff --git a/arch/x86/include/asm/posix_types.h b/arch/x86/include/asm/posix_types.h
dissimilarity index 94%
index bb7133d..980736c 100644
--- a/arch/x86/include/asm/posix_types.h
+++ b/arch/x86/include/asm/posix_types.h
@@ -1,13 +1,88 @@
-#ifdef __KERNEL__
-# ifdef CONFIG_X86_32
-#  include "posix_types_32.h"
-# else
-#  include "posix_types_64.h"
-# endif
-#else
-# ifdef __i386__
-#  include "posix_types_32.h"
-# else
-#  include "posix_types_64.h"
-# endif
-#endif
+#ifndef _ASM_X86_POSIX_TYPES_H
+#define _ASM_X86_POSIX_TYPES_H
+
+#ifdef __x86_64__
+/*
+ * These types are different on x86_64 from the asm-generic version
+ */
+#define __kernel_old_uid_t __kernel_old_uid_t
+typedef unsigned short	__kernel_old_uid_t;
+typedef unsigned short	__kernel_old_gid_t;
+
+#define __kernel_old_dev_t __kernel_old_dev_t
+typedef unsigned long	__kernel_old_dev_t;
+
+#else
+/*
+ * These types are different on x86_32 from the asm-generic version
+ */
+#define __kernel_mode_t __kernel_mode_t
+typedef unsigned short	__kernel_mode_t;
+
+#define __kernel_nlink_t __kernel_nlink_t
+typedef unsigned short	__kernel_nlink_t;
+
+#define __kernel_ipc_pid_t __kernel_ipc_pid_t
+typedef unsigned short	__kernel_ipc_pid_t;
+
+#define __kernel_uid_t __kernel_uid_t
+typedef unsigned short	__kernel_uid_t;
+typedef unsigned short	__kernel_gid_t;
+
+#define __kernel_uid32_t __kernel_uid32_t
+typedef unsigned int	__kernel_uid32_t;
+typedef unsigned int	__kernel_gid32_t;
+
+#define __kernel_old_uid_t __kernel_old_uid_t
+typedef unsigned short	__kernel_old_uid_t;
+typedef unsigned short	__kernel_old_gid_t;
+
+#define __kernel_old_dev_t __kernel_old_dev_t
+typedef unsigned short	__kernel_old_dev_t;
+
+#endif
+
+#include <asm-generic/posix_types.h>
+
+#if defined(__KERNEL__)
+#ifndef CONFIG_X86_64
+
+#undef	__FD_SET
+#define __FD_SET(fd,fdsetp)					\
+	asm volatile("btsl %1,%0":				\
+		     "+m" (*(__kernel_fd_set *)(fdsetp))	\
+		     : "r" ((int)(fd)))
+
+#undef	__FD_CLR
+#define __FD_CLR(fd,fdsetp)					\
+	asm volatile("btrl %1,%0":				\
+		     "+m" (*(__kernel_fd_set *)(fdsetp))	\
+		     : "r" ((int) (fd)))
+
+#undef	__FD_ISSET
+#define __FD_ISSET(fd,fdsetp)					\
+	(__extension__						\
+	 ({							\
+	 unsigned char __result;				\
+	 asm volatile("btl %1,%2 ; setb %0"			\
+		      : "=q" (__result)				\
+		      : "r" ((int)(fd)),			\
+			"m" (*(__kernel_fd_set *)(fdsetp)));	\
+	 __result;						\
+}))
+
+#undef	__FD_ZERO
+#define __FD_ZERO(fdsetp)					\
+do {								\
+	int __d0, __d1;						\
+	asm volatile("cld ; rep ; stosl"			\
+		     : "=m" (*(__kernel_fd_set *)(fdsetp)),	\
+		       "=&c" (__d0), "=&D" (__d1)		\
+		     : "a" (0), "1" (__FDSET_LONGS),		\
+		       "2" ((__kernel_fd_set *)(fdsetp))	\
+		     : "memory");				\
+} while (0)
+#endif /* CONFIG_X86_64 */
+#endif /* defined(__KERNEL__) */
+
+#endif /* _ASM_X86_POSIX_TYPES_H */

  reply	other threads:[~2009-06-18 13:11 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-06-18  8:39 [GIT-PULL -tip][PATCH 0/5 -tip] x86: headers fixes Jaswinder Singh Rajput
2009-06-18  8:40 ` [PATCH 1/5 -tip] x86: asm/posix_types.h common for kernel and user space Jaswinder Singh Rajput
2009-06-18  8:41   ` [PATCH 2/5 -tip] x86: move common typedefs to asm/posix_types.h Jaswinder Singh Rajput
2009-06-18  8:41     ` [PATCH 3/5 -tip] x86: asm/unistd.h common for kernel and user space Jaswinder Singh Rajput
2009-06-18  8:42       ` [PATCH 4/5 -tip] x86: asm/termios.h remove irrelevant comment for userspace Jaswinder Singh Rajput
2009-06-18  8:43         ` [PATCH 5/5 -tip] x86: asm/types.h " Jaswinder Singh Rajput
2009-06-18 11:51     ` [PATCH 2/5 -tip] x86: move common typedefs to asm/posix_types.h Christoph Hellwig
2009-06-18 13:10       ` Arnd Bergmann [this message]
2009-06-18 13:47         ` Jaswinder Singh Rajput
2009-06-18 17:43 ` [GIT-PULL -tip V2][PATCH 0/4 -tip] x86: headers fixes Jaswinder Singh Rajput
2009-06-18 17:44   ` [PATCH 1/4 -tip V2] x86: unification of posix_types.h Jaswinder Singh Rajput
2009-06-18 17:45     ` [PATCH 2/4 -tip V2] x86: asm/unistd.h common for kernel and user space Jaswinder Singh Rajput
2009-06-18 17:45       ` [PATCH 3/4 -tip V2] x86: asm/termios.h remove irrelevant comment for userspace Jaswinder Singh Rajput
2009-06-18 17:46         ` [PATCH 4/4 -tip V2] x86: asm/types.h " Jaswinder Singh Rajput
2009-06-20 20:46           ` [PATCH -tip RESEND] " Jaswinder Singh Rajput
2009-06-20 20:46         ` [PATCH -tip RESEND] x86: asm/termios.h " Jaswinder Singh Rajput
2009-06-20 20:49           ` Arnd Bergmann
2009-06-20 20:45       ` [PATCH -tip RESEND] x86: asm/unistd.h common for kernel and user space Jaswinder Singh Rajput
2009-06-20 21:15         ` Jaswinder Singh Rajput
2009-06-20 20:44     ` [PATCH -tip RESEND] x86: unification of posix_types.h Jaswinder Singh Rajput

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200906181510.27464.arnd@arndb.de \
    --to=arnd@arndb.de \
    --cc=hch@infradead.org \
    --cc=jaswinder@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=sam@ravnborg.org \
    --cc=x86@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox