From: Geoff Levand <geoff@infradead.org>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Eric Biederman <ebiederm@xmission.com>,
kexec@lists.infradead.org,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: [PATCH V23/5] kexec: Add bit definitions for kimage entry flags
Date: Tue, 07 Oct 2014 00:21:30 +0000 [thread overview]
Message-ID: <02c3a7b33169e92de6f749b0956fd93d032f0c62.1412640584.git.geoff@infradead.org> (raw)
In-Reply-To: <cover.1412640584.git.geoff@infradead.org>
Define new kexec preprocessor macros IND_*_BIT that define the bit position of
the kimage entry flags. Change the existing IND_* flag macros to be defined as
bit shifts of the corresponding IND_*_BIT macros. Also wrap all C language code
in kexec.h with #if !defined(__ASSEMBLY__) so assembly files can include kexec.h
to get the IND_* and IND_*_BIT macros.
Some CPU instruction sets have tests for bit position which are convenient in
implementing routines that operate on the kimage entry list. The addition of
these bit position macros in a common location will avoid duplicate definitions
and the chance that changes to the IND_* flags will not be propagated to
assembly files.
Signed-off-by: Geoff Levand <geoff@infradead.org>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
---
include/linux/kexec.h | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/include/linux/kexec.h b/include/linux/kexec.h
index 4b2a0e1..8c628ca 100644
--- a/include/linux/kexec.h
+++ b/include/linux/kexec.h
@@ -1,6 +1,18 @@
#ifndef LINUX_KEXEC_H
#define LINUX_KEXEC_H
+#define IND_DESTINATION_BIT 0
+#define IND_INDIRECTION_BIT 1
+#define IND_DONE_BIT 2
+#define IND_SOURCE_BIT 3
+
+#define IND_DESTINATION (1 << IND_DESTINATION_BIT)
+#define IND_INDIRECTION (1 << IND_INDIRECTION_BIT)
+#define IND_DONE (1 << IND_DONE_BIT)
+#define IND_SOURCE (1 << IND_SOURCE_BIT)
+
+#if !defined(__ASSEMBLY__)
+
#include <uapi/linux/kexec.h>
#ifdef CONFIG_KEXEC
@@ -64,10 +76,6 @@
*/
typedef unsigned long kimage_entry_t;
-#define IND_DESTINATION 0x1
-#define IND_INDIRECTION 0x2
-#define IND_DONE 0x4
-#define IND_SOURCE 0x8
struct kexec_segment {
/*
@@ -312,4 +320,7 @@ struct task_struct;
static inline void crash_kexec(struct pt_regs *regs) { }
static inline int kexec_should_crash(struct task_struct *p) { return 0; }
#endif /* CONFIG_KEXEC */
+
+#endif /* !defined(__ASSEBMLY__) */
+
#endif /* LINUX_KEXEC_H */
--
1.9.1
next prev parent reply other threads:[~2014-10-07 0:22 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-08-22 18:39 [PATCH 0/5] kexec: minor fixups and enhancements Geoff Levand
2014-08-22 18:39 ` [PATCH 3/5] kexec: Add bit definitions for kimage entry flags Geoff Levand
2014-08-25 17:52 ` Vivek Goyal
2014-08-22 18:39 ` [PATCH 1/5] kexec: Fix make headers_check Geoff Levand
2014-08-25 17:22 ` Vivek Goyal
2014-08-30 12:47 ` Paul Bolle
2014-10-06 14:12 ` Paul Bolle
2014-10-06 17:34 ` Geoff Levand
2014-10-06 18:21 ` Paul Bolle
2014-10-06 19:28 ` Geoff Levand
2014-10-06 17:44 ` H. Peter Anvin
2014-08-22 18:39 ` [PATCH 5/5] powerpc/kexec: Use global IND_FLAGS macro Geoff Levand
2014-08-22 18:39 ` [PATCH 4/5] kexec: Add " Geoff Levand
2014-08-25 17:54 ` Vivek Goyal
2014-08-22 18:39 ` [PATCH 2/5] kexec: Simplify conditional Geoff Levand
2014-08-25 17:42 ` Vivek Goyal
2014-08-25 16:59 ` [PATCH 0/5] kexec: minor fixups and enhancements Vivek Goyal
2014-08-26 7:41 ` Dave Young
2014-08-27 0:33 ` Geoff Levand
2014-08-27 0:42 ` Vivek Goyal
2014-10-07 0:21 ` [PATCH V2 0/5] kexec: Minor " Geoff Levand
2014-10-07 0:21 ` [PATCH V25/5] powerpc/kexec: Use global IND_FLAGS macro Geoff Levand
2014-10-07 17:52 ` Vivek Goyal
2014-11-12 19:29 ` [PATCH V3] kexec: Add " Geoff Levand
2014-11-12 23:06 ` Benjamin Herrenschmidt
2014-10-07 0:21 ` [PATCH V22/5] kexec: Simplify conditional Geoff Levand
2014-10-07 0:21 ` [PATCH V21/5] kexec: Fix make headers_check Geoff Levand
2014-10-07 0:21 ` Geoff Levand [this message]
2014-10-07 0:21 ` [PATCH V24/5] kexec: Add IND_FLAGS macro Geoff Levand
2014-10-07 20:26 ` [PATCH V3 4/5] " Geoff Levand
2014-11-13 0:19 ` [PATCH V3 0/4] kexec: minor fixups and enhancements Geoff Levand
2014-11-13 0:19 ` [PATCH V3 3/4] kexec: Add bit definitions for kimage entry flags Geoff Levand
2014-11-13 0:19 ` [PATCH V3 4/4] kexec: Add IND_FLAGS macro Geoff Levand
2014-11-13 0:19 ` [PATCH V3 2/4] kexec: Simplify conditional Geoff Levand
2014-11-13 0:19 ` [PATCH V3 1/4] kexec: Fix make headers_check Geoff Levand
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=02c3a7b33169e92de6f749b0956fd93d032f0c62.1412640584.git.geoff@infradead.org \
--to=geoff@infradead.org \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=ebiederm@xmission.com \
--cc=kexec@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.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;
as well as URLs for NNTP newsgroup(s).