Got rid of a global, hope no one minds
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21349 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
96493dcae9
commit
d9be8bc0fe
@ -58,8 +58,6 @@
|
|||||||
#define ROUNDOWN(a, b) (((a) / (b)) * (b))
|
#define ROUNDOWN(a, b) (((a) / (b)) * (b))
|
||||||
|
|
||||||
|
|
||||||
extern vm_address_space *gKernelAddressSpace;
|
|
||||||
|
|
||||||
#define REGION_HASH_TABLE_SIZE 1024
|
#define REGION_HASH_TABLE_SIZE 1024
|
||||||
static area_id sNextAreaID;
|
static area_id sNextAreaID;
|
||||||
static hash_table *sAreaHash;
|
static hash_table *sAreaHash;
|
||||||
@ -1321,7 +1319,7 @@ vm_clone_area(team_id team, const char *name, void **address, uint32 addressSpec
|
|||||||
// have been adapted. Maybe it should be part of the kernel settings,
|
// have been adapted. Maybe it should be part of the kernel settings,
|
||||||
// anyway (so that old drivers can always work).
|
// anyway (so that old drivers can always work).
|
||||||
#if 0
|
#if 0
|
||||||
if (sourceArea->aspace == gKernelAddressSpace && addressSpace != gKernelAddressSpace
|
if (sourceArea->aspace == vm_kernel_address_space() && addressSpace != vm_kernel_address_space()
|
||||||
&& !(sourceArea->protection & B_USER_CLONEABLE_AREA)) {
|
&& !(sourceArea->protection & B_USER_CLONEABLE_AREA)) {
|
||||||
// kernel areas must not be cloned in userland, unless explicitly
|
// kernel areas must not be cloned in userland, unless explicitly
|
||||||
// declared user-cloneable upon construction
|
// declared user-cloneable upon construction
|
||||||
@ -2574,7 +2572,7 @@ unmap_and_free_physical_pages(vm_translation_map *map, addr_t start, addr_t end)
|
|||||||
void
|
void
|
||||||
vm_free_unused_boot_loader_range(addr_t start, addr_t size)
|
vm_free_unused_boot_loader_range(addr_t start, addr_t size)
|
||||||
{
|
{
|
||||||
vm_translation_map *map = &gKernelAddressSpace->translation_map;
|
vm_translation_map *map = &vm_kernel_address_space()->translation_map;
|
||||||
addr_t end = start + size;
|
addr_t end = start + size;
|
||||||
addr_t lastEnd = start;
|
addr_t lastEnd = start;
|
||||||
vm_area *area;
|
vm_area *area;
|
||||||
@ -2587,7 +2585,7 @@ vm_free_unused_boot_loader_range(addr_t start, addr_t size)
|
|||||||
|
|
||||||
map->ops->lock(map);
|
map->ops->lock(map);
|
||||||
|
|
||||||
for (area = gKernelAddressSpace->areas; area; area = area->address_space_next) {
|
for (area = vm_kernel_address_space()->areas; area; area = area->address_space_next) {
|
||||||
addr_t areaStart = area->base;
|
addr_t areaStart = area->base;
|
||||||
addr_t areaEnd = areaStart + area->size;
|
addr_t areaEnd = areaStart + area->size;
|
||||||
|
|
||||||
@ -2981,7 +2979,7 @@ vm_init_post_sem(kernel_args *args)
|
|||||||
arch_vm_translation_map_init_post_sem(args);
|
arch_vm_translation_map_init_post_sem(args);
|
||||||
vm_address_space_init_post_sem();
|
vm_address_space_init_post_sem();
|
||||||
|
|
||||||
for (area = gKernelAddressSpace->areas; area; area = area->address_space_next) {
|
for (area = vm_kernel_address_space()->areas; area; area = area->address_space_next) {
|
||||||
if (area->id == RESERVED_AREA_ID)
|
if (area->id == RESERVED_AREA_ID)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -3617,14 +3615,14 @@ found:
|
|||||||
status_t
|
status_t
|
||||||
vm_get_physical_page(addr_t paddr, addr_t *_vaddr, uint32 flags)
|
vm_get_physical_page(addr_t paddr, addr_t *_vaddr, uint32 flags)
|
||||||
{
|
{
|
||||||
return (*gKernelAddressSpace->translation_map.ops->get_physical_page)(paddr, _vaddr, flags);
|
return (*vm_kernel_address_space()->translation_map.ops->get_physical_page)(paddr, _vaddr, flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
vm_put_physical_page(addr_t vaddr)
|
vm_put_physical_page(addr_t vaddr)
|
||||||
{
|
{
|
||||||
return (*gKernelAddressSpace->translation_map.ops->put_physical_page)(vaddr);
|
return (*vm_kernel_address_space()->translation_map.ops->put_physical_page)(vaddr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -26,7 +26,8 @@
|
|||||||
# define TRACE(x) ;
|
# define TRACE(x) ;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
vm_address_space *gKernelAddressSpace;
|
|
||||||
|
static vm_address_space *sKernelAddressSpace;
|
||||||
|
|
||||||
#define ASPACE_HASH_TABLE_SIZE 1024
|
#define ASPACE_HASH_TABLE_SIZE 1024
|
||||||
static void *sAddressSpaceTable;
|
static void *sAddressSpaceTable;
|
||||||
@ -140,7 +141,7 @@ delete_address_space(vm_address_space *addressSpace)
|
|||||||
{
|
{
|
||||||
TRACE(("delete_address_space: called on aspace 0x%lx\n", addressSpace->id));
|
TRACE(("delete_address_space: called on aspace 0x%lx\n", addressSpace->id));
|
||||||
|
|
||||||
if (addressSpace == gKernelAddressSpace)
|
if (addressSpace == sKernelAddressSpace)
|
||||||
panic("tried to delete the kernel aspace!\n");
|
panic("tried to delete the kernel aspace!\n");
|
||||||
|
|
||||||
// put this aspace in the deletion state
|
// put this aspace in the deletion state
|
||||||
@ -178,22 +179,22 @@ vm_address_space *
|
|||||||
vm_get_kernel_address_space(void)
|
vm_get_kernel_address_space(void)
|
||||||
{
|
{
|
||||||
/* we can treat this one a little differently since it can't be deleted */
|
/* we can treat this one a little differently since it can't be deleted */
|
||||||
atomic_add(&gKernelAddressSpace->ref_count, 1);
|
atomic_add(&sKernelAddressSpace->ref_count, 1);
|
||||||
return gKernelAddressSpace;
|
return sKernelAddressSpace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
vm_address_space *
|
vm_address_space *
|
||||||
vm_kernel_address_space(void)
|
vm_kernel_address_space(void)
|
||||||
{
|
{
|
||||||
return gKernelAddressSpace;
|
return sKernelAddressSpace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
team_id
|
team_id
|
||||||
vm_kernel_address_space_id(void)
|
vm_kernel_address_space_id(void)
|
||||||
{
|
{
|
||||||
return gKernelAddressSpace->id;
|
return sKernelAddressSpace->id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -354,11 +355,11 @@ vm_address_space_init(void)
|
|||||||
panic("vm_init: error creating aspace hash table\n");
|
panic("vm_init: error creating aspace hash table\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
gKernelAddressSpace = NULL;
|
sKernelAddressSpace = NULL;
|
||||||
|
|
||||||
// create the initial kernel address space
|
// create the initial kernel address space
|
||||||
if (vm_create_address_space(1, KERNEL_BASE, KERNEL_SIZE,
|
if (vm_create_address_space(1, KERNEL_BASE, KERNEL_SIZE,
|
||||||
true, &gKernelAddressSpace) != B_OK)
|
true, &sKernelAddressSpace) != B_OK)
|
||||||
panic("vm_init: error creating kernel address space!\n");
|
panic("vm_init: error creating kernel address space!\n");
|
||||||
|
|
||||||
add_debugger_command("aspaces", &dump_aspace_list, "Dump a list of all address spaces");
|
add_debugger_command("aspaces", &dump_aspace_list, "Dump a list of all address spaces");
|
||||||
@ -371,11 +372,11 @@ vm_address_space_init(void)
|
|||||||
status_t
|
status_t
|
||||||
vm_address_space_init_post_sem(void)
|
vm_address_space_init_post_sem(void)
|
||||||
{
|
{
|
||||||
status_t status = arch_vm_translation_map_init_kernel_map_post_sem(&gKernelAddressSpace->translation_map);
|
status_t status = arch_vm_translation_map_init_kernel_map_post_sem(&sKernelAddressSpace->translation_map);
|
||||||
if (status < B_OK)
|
if (status < B_OK)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
status = gKernelAddressSpace->sem = create_sem(WRITE_COUNT, "kernel_aspacelock");
|
status = sKernelAddressSpace->sem = create_sem(WRITE_COUNT, "kernel_aspacelock");
|
||||||
if (status < B_OK)
|
if (status < B_OK)
|
||||||
return status;
|
return status;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user