aboutsummaryrefslogtreecommitdiff
path: root/sys/amd64/include/pcpu.h
diff options
context:
space:
mode:
authorPoul-Henning Kamp <phk@FreeBSD.org>2002-10-01 14:01:58 +0000
committerPoul-Henning Kamp <phk@FreeBSD.org>2002-10-01 14:01:58 +0000
commit7e9bac35e25717b55ca91c2bd0c5b0e74d7b7b92 (patch)
treeabfecfadca0afdbcaa4c8fc1f9e5c4552223a9dd /sys/amd64/include/pcpu.h
parent4fb133adea638d64bfacced4006189ee52c04c1e (diff)
downloadsrc-7e9bac35e25717b55ca91c2bd0c5b0e74d7b7b92.tar.gz
src-7e9bac35e25717b55ca91c2bd0c5b0e74d7b7b92.zip
A more lint friendly #ifdef lint section.
Notes
Notes: svn path=/head/; revision=104291
Diffstat (limited to 'sys/amd64/include/pcpu.h')
-rw-r--r--sys/amd64/include/pcpu.h32
1 files changed, 13 insertions, 19 deletions
diff --git a/sys/amd64/include/pcpu.h b/sys/amd64/include/pcpu.h
index f8d6998be4ad..a680645ae75e 100644
--- a/sys/amd64/include/pcpu.h
+++ b/sys/amd64/include/pcpu.h
@@ -31,24 +31,6 @@
#ifdef _KERNEL
-#ifndef __GNUC__
-
-#ifndef lint
-#error gcc or lint is required to use this file
-#else /* lint */
-#define __PCPU_PTR(name)
-#define __PCPU_GET(name)
-#define __PCPU_SET(name, val)
-#define PCPU_GET(member) __PCPU_GET(pc_ ## member)
-#define PCPU_PTR(member) __PCPU_PTR(pc_ ## member)
-#define PCPU_SET(member, val) __PCPU_SET(pc_ ## member, val)
-#define PCPU_MD_FIELDS \
- int foo; \
- char bar
-#endif /* lint */
-
-#else /* __GNUC__ */
-
#include <machine/segments.h>
#include <machine/tss.h>
@@ -70,6 +52,16 @@
u_int32_t pc_fpending; /* pending fast interrupts */ \
u_int32_t pc_spending /* pending soft interrupts */
+#if defined(lint)
+
+extern struct pcpu *pcpup;
+
+#define PCPU_GET(member) (pcpup->pc_ ## member)
+#define PCPU_PTR(member) (&pcpup->pc_ ## member)
+#define PCPU_SET(member,value) (pcpup->pc_ ## member = (value))
+
+#elif defined(__GNUC__)
+
/*
* Evaluates to the byte offset of the per-cpu variable name.
*/
@@ -160,7 +152,9 @@
#define PCPU_PTR(member) __PCPU_PTR(pc_ ## member)
#define PCPU_SET(member, val) __PCPU_SET(pc_ ## member, val)
-#endif /* __GNUC__ */
+#else
+#error gcc or lint is required to use this file
+#endif
#endif /* _KERNEL */