summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkib <kib@FreeBSD.org>2015-07-02 14:37:21 +0000
committerkib <kib@FreeBSD.org>2015-07-02 14:37:21 +0000
commit77205a0535aed99b4194879b73077c1a1a4bf4f6 (patch)
treea1fbffaad7b43ca5ec177ee3f3d30ff713e09b9b
parent6fa1b93946b24835a4849b0342944e3a8b1b3dd2 (diff)
downloadFreeBSD-src-77205a0535aed99b4194879b73077c1a1a4bf4f6.zip
FreeBSD-src-77205a0535aed99b4194879b73077c1a1a4bf4f6.tar.gz
Use single instance of the identical INKERNEL() and PMC_IN_KERNEL()
macros on amd64 and i386. Move the definition to machine/param.h. kgdb defines INKERNEL() too, the conflict is resolved by renaming kgdb version to PINKERNEL(). On i386, correct the lowest kernel address. After the shared page was introduced, USRSTACK no longer points to the last user address + 1 [*] Submitted by: Oliver Pinter [*] Sponsored by: The FreeBSD Foundation MFC after: 1 week
-rw-r--r--gnu/usr.bin/gdb/kgdb/trgt.c6
-rw-r--r--sys/amd64/include/param.h3
-rw-r--r--sys/amd64/include/pmc_mdep.h4
-rw-r--r--sys/amd64/include/stack.h2
-rw-r--r--sys/cddl/dev/dtrace/i386/dtrace_isa.c3
-rw-r--r--sys/i386/include/param.h3
-rw-r--r--sys/i386/include/pmc_mdep.h3
-rw-r--r--sys/i386/include/stack.h2
8 files changed, 11 insertions, 15 deletions
diff --git a/gnu/usr.bin/gdb/kgdb/trgt.c b/gnu/usr.bin/gdb/kgdb/trgt.c
index b2f6189..c75edf0 100644
--- a/gnu/usr.bin/gdb/kgdb/trgt.c
+++ b/gnu/usr.bin/gdb/kgdb/trgt.c
@@ -76,7 +76,7 @@ kvm_t *kvm;
static char kvm_err[_POSIX2_LINE_MAX];
#define KERNOFF (kgdb_kernbase ())
-#define INKERNEL(x) ((x) >= KERNOFF)
+#define PINKERNEL(x) ((x) >= KERNOFF)
static CORE_ADDR
kgdb_kernbase (void)
@@ -296,7 +296,7 @@ kgdb_set_proc_cmd (char *arg, int from_tty)
addr = (CORE_ADDR) parse_and_eval_address (arg);
- if (!INKERNEL (addr)) {
+ if (!PINKERNEL (addr)) {
thr = kgdb_thr_lookup_pid((int)addr);
if (thr == NULL)
error ("invalid pid");
@@ -319,7 +319,7 @@ kgdb_set_tid_cmd (char *arg, int from_tty)
addr = (CORE_ADDR) parse_and_eval_address (arg);
- if (kvm != NULL && INKERNEL (addr)) {
+ if (kvm != NULL && PINKERNEL (addr)) {
thr = kgdb_thr_lookup_taddr(addr);
if (thr == NULL)
error("invalid thread address");
diff --git a/sys/amd64/include/param.h b/sys/amd64/include/param.h
index ad6c733..5892ae9 100644
--- a/sys/amd64/include/param.h
+++ b/sys/amd64/include/param.h
@@ -149,4 +149,7 @@
#define pgtok(x) ((unsigned long)(x) * (PAGE_SIZE / 1024))
+#define INKERNEL(va) (((va) >= DMAP_MIN_ADDRESS && (va) < DMAP_MAX_ADDRESS) \
+ || ((va) >= VM_MIN_KERNEL_ADDRESS && (va) < VM_MAX_KERNEL_ADDRESS))
+
#endif /* !_AMD64_INCLUDE_PARAM_H_ */
diff --git a/sys/amd64/include/pmc_mdep.h b/sys/amd64/include/pmc_mdep.h
index 73c93fe..22249c1 100644
--- a/sys/amd64/include/pmc_mdep.h
+++ b/sys/amd64/include/pmc_mdep.h
@@ -113,9 +113,7 @@ union pmc_md_pmc {
#define PMC_IN_KERNEL_STACK(S,START,END) \
((S) >= (START) && (S) < (END))
-#define PMC_IN_KERNEL(va) (((va) >= DMAP_MIN_ADDRESS && \
- (va) < DMAP_MAX_ADDRESS) || ((va) >= VM_MIN_KERNEL_ADDRESS && \
- (va) < VM_MAX_KERNEL_ADDRESS))
+#define PMC_IN_KERNEL(va) INKERNEL(va)
#define PMC_IN_USERSPACE(va) ((va) <= VM_MAXUSER_ADDRESS)
diff --git a/sys/amd64/include/stack.h b/sys/amd64/include/stack.h
index 24e2547..8297eae 100644
--- a/sys/amd64/include/stack.h
+++ b/sys/amd64/include/stack.h
@@ -32,8 +32,6 @@
/*
* Stack trace.
*/
-#define INKERNEL(va) (((va) >= DMAP_MIN_ADDRESS && (va) < DMAP_MAX_ADDRESS) \
- || ((va) >= VM_MIN_KERNEL_ADDRESS && (va) < VM_MAX_KERNEL_ADDRESS))
struct amd64_frame {
struct amd64_frame *f_frame;
diff --git a/sys/cddl/dev/dtrace/i386/dtrace_isa.c b/sys/cddl/dev/dtrace/i386/dtrace_isa.c
index 6c261bf..04f205c 100644
--- a/sys/cddl/dev/dtrace/i386/dtrace_isa.c
+++ b/sys/cddl/dev/dtrace/i386/dtrace_isa.c
@@ -47,9 +47,6 @@
extern uintptr_t kernbase;
uintptr_t kernelbase = (uintptr_t) &kernbase;
-#define INKERNEL(va) (((vm_offset_t)(va)) >= USRSTACK && \
- ((vm_offset_t)(va)) < VM_MAX_KERNEL_ADDRESS)
-
uint8_t dtrace_fuword8_nocheck(void *);
uint16_t dtrace_fuword16_nocheck(void *);
uint32_t dtrace_fuword32_nocheck(void *);
diff --git a/sys/i386/include/param.h b/sys/i386/include/param.h
index 54477c1..b3fd85f 100644
--- a/sys/i386/include/param.h
+++ b/sys/i386/include/param.h
@@ -157,4 +157,7 @@
#define pgtok(x) ((x) * (PAGE_SIZE / 1024))
+#define INKERNEL(va) (((vm_offset_t)(va)) >= VM_MAXUSER_ADDRESS && \
+ ((vm_offset_t)(va)) < VM_MAX_KERNEL_ADDRESS)
+
#endif /* !_I386_INCLUDE_PARAM_H_ */
diff --git a/sys/i386/include/pmc_mdep.h b/sys/i386/include/pmc_mdep.h
index 5ce791a..ff057ce 100644
--- a/sys/i386/include/pmc_mdep.h
+++ b/sys/i386/include/pmc_mdep.h
@@ -138,8 +138,7 @@ struct pmc_mdep;
#define PMC_IN_KERNEL_STACK(S,START,END) \
((S) >= (START) && (S) < (END))
-#define PMC_IN_KERNEL(va) (((va) >= USRSTACK) && \
- ((va) < VM_MAX_KERNEL_ADDRESS))
+#define PMC_IN_KERNEL(va) INKERNEL(va)
#define PMC_IN_USERSPACE(va) ((va) <= VM_MAXUSER_ADDRESS)
diff --git a/sys/i386/include/stack.h b/sys/i386/include/stack.h
index 78caae0..f63fc4b 100644
--- a/sys/i386/include/stack.h
+++ b/sys/i386/include/stack.h
@@ -32,8 +32,6 @@
/*
* Stack trace.
*/
-#define INKERNEL(va) (((vm_offset_t)(va)) >= USRSTACK && \
- ((vm_offset_t)(va)) < VM_MAX_KERNEL_ADDRESS)
struct i386_frame {
struct i386_frame *f_frame;
OpenPOWER on IntegriCloud