Ignore:
Timestamp:
Feb 22, 2004, 1:27:13 AM (16 years ago)
Author:
gb
Message:

PPC64 changes (some of them rather suspect ...). 32-bit kernel may be a
little funky ...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ccl/lisp-kernel/lisp.h

    r6 r557  
    1717#ifndef __lisp__
    1818#define __lisp__
     19
     20/*
     21  On some platforms (the G5 under Panther when -mpowerpc64 is in effect)
     22  the C compiler belives that pointers are only 32 bits wide, even though
     23  the machine's in 64-bit mode.  If that's the case, prepand a gensym'ed
     24  word to any pointer fields in any structure accessed by both C and Lisp
     25  code.
     26
     27  This means that C and Lisp will have a slightly different notion of the
     28  offset of each such field.  The alternative - representing the pointer
     29  as a 64-bit int and casting on every reference - seems just as ugly.
     30*/
     31
     32#if defined(PPC64) && defined(FOREIGN_POINTER_32BIT)
     33#define NATURAL_POINTER_FIELD(type,name) unsigned _ ## name; type * name
     34#else
     35#define NATURAL_POINTER_FIELD(type,name) type *name;
     36#endif
     37
    1938
    2039#include "lisptypes.h"
Note: See TracChangeset for help on using the changeset viewer.