Use the same treatment as in linker_set.h for the __start and __stop
symbols of the set_vnet and set_pcpu sections, so those symbols will always be emitted in kernel modules, if they use vnet.h or pcpu.h. Also, for pcpu.h, make the __(start|stop)_set_pcpu declarations, and associated macros invisible to userland, to prevent it picking up these symbols. Reviewed by: kib
This commit is contained in:
parent
2175fbcfd1
commit
2c7257916f
@ -95,7 +95,9 @@ struct vnet {
|
||||
* Location of the kernel's 'set_vnet' linker set.
|
||||
*/
|
||||
extern uintptr_t *__start_set_vnet;
|
||||
__GLOBL(__start_set_vnet);
|
||||
extern uintptr_t *__stop_set_vnet;
|
||||
__GLOBL(__stop_set_vnet);
|
||||
|
||||
#define VNET_START (uintptr_t)&__start_set_vnet
|
||||
#define VNET_STOP (uintptr_t)&__stop_set_vnet
|
||||
|
@ -42,11 +42,15 @@
|
||||
#include <sys/resource.h>
|
||||
#include <machine/pcpu.h>
|
||||
|
||||
#ifdef _KERNEL
|
||||
|
||||
/*
|
||||
* Define a set for pcpu data.
|
||||
*/
|
||||
extern uintptr_t *__start_set_pcpu;
|
||||
__GLOBL(__start_set_pcpu);
|
||||
extern uintptr_t *__stop_set_pcpu;
|
||||
__GLOBL(__stop_set_pcpu);
|
||||
|
||||
/*
|
||||
* Array of dynamic pcpu base offsets. Indexed by id.
|
||||
@ -127,6 +131,8 @@ extern uintptr_t dpcpu_off[];
|
||||
} \
|
||||
} while(0)
|
||||
|
||||
#endif /* _KERNEL */
|
||||
|
||||
/*
|
||||
* XXXUPS remove as soon as we have per cpu variable
|
||||
* linker sets and can define rm_queue in _rm_lock.h
|
||||
|
Loading…
x
Reference in New Issue
Block a user