Lines Matching defs:area

253  * Reserve as much memory as possible in the given area.
327 * Reserve the DOS area (0x00000000-0x00110000).
353 struct reserved_area *area;
368 /* check for a reserved area starting at the user space limit */
372 area = LIST_ENTRY( ptr, struct reserved_area, entry );
373 if ((char *)area->base > user_space_limit) break;
374 if ((char *)area->base + area->size > user_space_limit)
376 user_space_limit = (char *)area->base + area->size;
397 /* reserve the DOS area if not already done */
402 area = LIST_ENTRY( ptr, struct reserved_area, entry );
403 if (!area->base) return; /* already reserved */
420 struct reserved_area *area;
427 area = LIST_ENTRY( ptr, struct reserved_area, entry );
428 if (area->base > addr)
431 if ((char *)addr + size == (char *)area->base)
433 area->base = addr;
434 area->size += size;
439 else if ((char *)area->base + area->size == (char *)addr)
442 area->size += size;
450 area->size += next->size;
459 if ((area = malloc( sizeof(*area) )))
461 area->base = addr;
462 area->size = size;
463 list_add_before( ptr, &area->entry );
479 struct reserved_area *area;
485 /* find the first area covering address */
488 area = LIST_ENTRY( ptr, struct reserved_area, entry );
489 if ((char *)area->base >= (char *)addr + size) break; /* outside the range */
490 if ((char *)area->base + area->size > (char *)addr) /* overlaps range */
492 if (area->base >= addr)
494 if ((char *)area->base + area->size > (char *)addr + size)
496 /* range overlaps beginning of area only -> shrink area */
497 if (unmap) munmap( area->base, (char *)addr + size - (char *)area->base );
498 area->size -= (char *)addr + size - (char *)area->base;
499 area->base = (char *)addr + size;
504 /* range contains the whole area -> remove area completely */
506 if (unmap) munmap( area->base, area->size );
507 list_remove( &area->entry );
508 free( area );
514 if ((char *)area->base + area->size > (char *)addr + size)
516 /* range is in the middle of area -> split area in two */
521 new_area->size = (char *)area->base + area->size - (char *)new_area->base;
524 else size = (char *)area->base + area->size - (char *)addr;
525 area->size = (char *)addr - (char *)area->base;
531 /* range overlaps end of area only -> shrink area */
532 if (unmap) munmap( addr, (char *)area->base + area->size - (char *)addr );
533 area->size = (char *)addr - (char *)area->base;
545 * Check if the specified range is included in a reserved area.
554 struct reserved_area *area;
559 area = LIST_ENTRY( ptr, struct reserved_area, entry );
560 if (area->base > addr) break;
561 if ((char *)area->base + area->size <= (char *)addr) continue;
562 /* area must contain block completely */
563 if ((char *)area->base + area->size < (char *)addr + size) return -1;
589 struct reserved_area *area = LIST_ENTRY( ptr, struct reserved_area, entry );
590 if ((ret = enum_func( area->base, area->size, arg ))) break;
597 struct reserved_area *area = LIST_ENTRY( ptr, struct reserved_area, entry );
598 if ((ret = enum_func( area->base, area->size, arg ))) break;