Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1025 → Rev 1026

/kernel/trunk/generic/src/mm/as.c
119,13 → 119,13
* The created address space area is added to the target address space.
*
* @param as Target address space.
* @param type Type of area.
* @param flags Flags of the area.
* @param size Size of area in multiples of PAGE_SIZE.
* @param base Base address of area.
*
* @return Address space area on success or NULL on failure.
*/
as_area_t *as_area_create(as_t *as, as_area_type_t type, size_t size, __address base)
as_area_t *as_area_create(as_t *as, int flags, size_t size, __address base)
{
ipl_t ipl;
as_area_t *a;
145,7 → 145,7
spinlock_initialize(&a->lock, "as_area_lock");
link_initialize(&a->link);
a->type = type;
a->flags = flags;
a->size = size;
a->base = base;
326,18 → 326,17
{
int flags;
 
switch (a->type) {
case AS_AREA_TEXT:
flags = PAGE_EXEC | PAGE_READ | PAGE_USER | PAGE_PRESENT | PAGE_CACHEABLE;
break;
case AS_AREA_DATA:
case AS_AREA_STACK:
flags = PAGE_READ | PAGE_WRITE | PAGE_USER | PAGE_PRESENT | PAGE_CACHEABLE;
break;
default:
panic("unexpected as_area_type_t %d", a->type);
}
flags = PAGE_USER | PAGE_PRESENT | PAGE_CACHEABLE;
if (a->flags & AS_AREA_READ)
flags |= PAGE_READ;
if (a->flags & AS_AREA_WRITE)
flags |= PAGE_WRITE;
if (a->flags & AS_AREA_EXEC)
flags |= PAGE_EXEC;
return flags;
}