Changeset 8640 in project


Ignore:
Timestamp:
02/22/08 23:33:01 (12 years ago)
Author:
felix winkelmann
Message:

use MAP_ANON (MAP_ANONYMOUS not available on Darwin); use C_check_uintX and BITWISE_UINT_ONLY

File:
1 edited

Legend:

Unmodified
Added
Removed
  • chicken/trunk/runtime.c

    r8588 r8640  
    154154#endif
    155155
     156#define BITWISE_UINT_ONLY
    156157
    157158/* Parameters: */
     
    275276                                       else n = (C_uword)f; \
    276277                                     }
     278
     279#define C_check_uintX(x, f, n, w)    if(((x) & C_FIXNUM_BIT) != 0) n = C_unfix(x); \
     280                                      else if(C_immediatep(x) || C_block_header(x) != C_FLONUM_TAG) \
     281                                        barf(C_BAD_ARGUMENT_TYPE_NO_NUMBER_ERROR, w, x); \
     282                                      else { double _m; \
     283                                        f = C_flonum_magnitude(x); \
     284                                        if(modf(f, &_m) != 0.0 || f > C_UWORD_MAX) \
     285                                          barf(C_BAD_ARGUMENT_TYPE_NO_UINTEGER_ERROR, w, x); \
     286                                        else n = (C_uword)f; \
     287                                      }
    277288
    278289#define C_check_uintX(x, f, n, w)    if(((x) & C_FIXNUM_BIT) != 0) n = C_unfix(x); \
     
    10371048#ifdef C_LOCK_TOSPACE
    10381049  p = (C_byte *)mmap (NULL, size, (PROT_READ | PROT_WRITE),
    1039                       (MAP_PRIVATE | MAP_ANONYMOUS), -1, 0);
     1050                      (MAP_PRIVATE | MAP_ANON), -1, 0);
    10401051  if (p != NULL && page_aligned) *page_aligned = p;
    10411052#else
     
    10671078#ifdef C_LOCK_TOSPACE
    10681079  p = (C_byte *)mmap (NULL, new_size, (PROT_READ | PROT_WRITE),
    1069                       (MAP_PRIVATE | MAP_ANONYMOUS), -1, 0);
     1080                      (MAP_PRIVATE | MAP_ANON), -1, 0);
    10701081  if (ptr != NULL) {
    10711082    memcpy (p, ptr, old_size);
Note: See TracChangeset for help on using the changeset viewer.