Changeset d681c17 in mainline for uspace/libc/generic/as.c


Ignore:
Timestamp:
2006-09-05T14:52:11Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
5035eeb7
Parents:
2def788
Message:

sparc64 work.

  • the syscall wrapper needs to use the "memory" clobber specifier to prevent over-optimization.
  • on sparc64, the user address space spans the whole 64-bit space and therefore the macro USER_ADDRESS_SPACE_SIZE_ARCH, as it was defined, overflows to 0
  • stop using USER_ADDRESS_SPACE_SIZE_ARCH and define MAX_HEAP_SIZE instead
  • in our situation when kernel and user address spaces are separate, the G (global) bit cannot be used (there is no point in it anymore)
  • add the DEBUG() macro to stdio.h; DEBUG() uses SYS_IO and is a good debugging tool for getting early userspace to work
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/libc/generic/as.c

    r2def788 rd681c17  
    3737#include <unistd.h>
    3838#include <align.h>
     39#include <types.h>
     40
     41/**
     42 * Either 4*256M on 32-bit architecures or 16*256M on 64-bit architectures.
     43 */
     44#define MAX_HEAP_SIZE   (sizeof(uintptr_t)<<28)
    3945
    4046/** Create address space area.
     
    142148        /* Set heapsize to some meaningful value */
    143149        if (maxheapsize == -1)
    144                 set_maxheapsize(ALIGN_UP(USER_ADDRESS_SPACE_SIZE_ARCH >> 1, PAGE_SIZE));
     150                set_maxheapsize(MAX_HEAP_SIZE);
    145151       
    146152        if (!last_allocated)
Note: See TracChangeset for help on using the changeset viewer.