mirror of
https://github.com/drasko/codezero.git
synced 2026-01-12 19:03:15 +01:00
Environment is backed by a special per-task file maintained by mm0 for each task. This file is filled in by the env pager, by simple copying of env data into the faulty page upon a fault. UTCB and all anon regions (stack) could use the same scheme. Fixed IS_ERR(x) to accept negative values that are above -1000 for errors. This protects against false positives for pointers such as 0xE0000000. modified: include/l4/generic/scheduler.h modified: include/l4/macros.h modified: src/arch/arm/exception.c modified: tasks/fs0/include/linker.lds modified: tasks/libl4/src/init.c modified: tasks/libposix/shm.c new file: tasks/mm0/include/env.h modified: tasks/mm0/include/file.h new file: tasks/mm0/include/lib/addr.h deleted: tasks/mm0/include/lib/vaddr.h modified: tasks/mm0/include/task.h new file: tasks/mm0/include/utcb.h new file: tasks/mm0/src/env.c modified: tasks/mm0/src/fault.c modified: tasks/mm0/src/file.c modified: tasks/mm0/src/init.c new file: tasks/mm0/src/lib/addr.c modified: tasks/mm0/src/lib/idpool.c deleted: tasks/mm0/src/lib/vaddr.c modified: tasks/mm0/src/mmap.c modified: tasks/mm0/src/shm.c modified: tasks/mm0/src/task.c new file: tasks/mm0/src/utcb.c modified: tasks/test0/include/linker.lds
24 lines
533 B
C
24 lines
533 B
C
/*
|
|
* Address allocation pool
|
|
*
|
|
* Copyright (C) 2007 Bahadir Balban
|
|
*/
|
|
#ifndef __ADDR_H__
|
|
#define __ADDR_H__
|
|
|
|
#include <lib/idpool.h>
|
|
|
|
/* Address pool to allocate from a range of addresses */
|
|
struct address_pool {
|
|
struct id_pool *idpool;
|
|
unsigned long start;
|
|
unsigned long end;
|
|
};
|
|
|
|
int address_pool_init(struct address_pool *pool, unsigned long start,
|
|
unsigned long end);
|
|
void *address_new(struct address_pool *pool, int npages);
|
|
int address_del(struct address_pool *, void *addr, int npages);
|
|
|
|
#endif /* __ADDR_H__ */
|