sparc: Merge asm-sparc{,64}/shmbuf.h
Padding in the shmbuf structure made conditional
as only 32 bit sparc did so.
:$ diff -u include/asm-sparc/shmbuf.h include/asm-sparc64/shmbuf.h
:-- include/asm-sparc/shmbuf.h 2008-06-13 06:42:07.000000000 +0200
:++ include/asm-sparc64/shmbuf.h 2008-06-13 06:42:07.000000000 +0200
:@@ -1,23 +1,19 @@
:-#ifndef _SPARC_SHMBUF_H
:-#define _SPARC_SHMBUF_H
:+#ifndef _SPARC64_SHMBUF_H
:+#define _SPARC64_SHMBUF_H
:
: /*
:- * The shmid64_ds structure for sparc architecture.
:+ * The shmid64_ds structure for sparc64 architecture.
: * Note extra padding because this structure is passed back and forth
: * between kernel and user space.
: *
: * Pad space is left for:
:- * - 64-bit time_t to solve y2038 problem
:- * - 2 miscellaneous 32-bit values
:+ * - 2 miscellaneous 64-bit values
: */
:
: struct shmid64_ds {
: struct ipc64_perm shm_perm; /* operation perms */
:- unsigned int __pad1;
: __kernel_time_t shm_atime; /* last attach time */
:- unsigned int __pad2;
: __kernel_time_t shm_dtime; /* last detach time */
:- unsigned int __pad3;
: __kernel_time_t shm_ctime; /* last change time */
: size_t shm_segsz; /* size of segment (bytes) */
: __kernel_pid_t shm_cpid; /* pid of creator */
:@@ -39,4 +35,4 @@
: unsigned long __unused4;
: };
:
:-#endif /* _SPARC_SHMBUF_H */
:+#endif /* _SPARC64_SHMBUF_H */
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
diff --git a/include/asm-sparc/shmbuf.h b/include/asm-sparc/shmbuf.h
index 1ff9da8..83a1605 100644
--- a/include/asm-sparc/shmbuf.h
+++ b/include/asm-sparc/shmbuf.h
@@ -11,13 +11,19 @@
* - 2 miscellaneous 32-bit values
*/
+#if defined(__sparc__) && defined(__arch64__)
+# define PADDING(x)
+#else
+# define PADDING(x) unsigned int x;
+#endif
+
struct shmid64_ds {
struct ipc64_perm shm_perm; /* operation perms */
- unsigned int __pad1;
+ PADDING(__pad1)
__kernel_time_t shm_atime; /* last attach time */
- unsigned int __pad2;
+ PADDING(__pad2)
__kernel_time_t shm_dtime; /* last detach time */
- unsigned int __pad3;
+ PADDING(__pad3)
__kernel_time_t shm_ctime; /* last change time */
size_t shm_segsz; /* size of segment (bytes) */
__kernel_pid_t shm_cpid; /* pid of creator */
@@ -39,4 +45,6 @@
unsigned long __unused4;
};
+#undef PADDING
+
#endif /* _SPARC_SHMBUF_H */