Annotation of GNUtools/cctools/include/architecture/nrw/reg_help.h, revision 1.1.1.1

1.1       root        1: /* Copyright (c) 1991 NeXT Computer, Inc.  All rights reserved.
                      2:  *
                      3:  *     File:   architecture/nrw/reg_help.h
                      4:  *     Author: Mike DeMoney, NeXT Computer, Inc.
                      5:  *
                      6:  *     This header file defines cpp macros useful for defining
                      7:  *     machine register and doing machine-level operations.
                      8:  *
                      9:  * HISTORY
                     10:  * 23-Jan-91  Mike DeMoney ([email protected])
                     11:  *     Created.
                     12:  */
                     13: 
                     14: #ifndef        _NRW_REG_HELP_H_
                     15: #define        _NRW_REG_HELP_H_
                     16: 
                     17: /* Bitfield definition aid */
                     18: #define        BITS_WIDTH(msb, lsb)    ((msb)-(lsb)+1)
                     19: #define        BIT_WIDTH(pos)          (1)     /* mostly to record the position */
                     20: 
                     21: /* Mask creation */
                     22: #define        MKMASK(width, offset)   (((unsigned)-1)>>(32-(width))<<(offset))
                     23: #define        BITSMASK(msb, lsb)      MKMASK(BITS_WIDTH(msb, lsb), lsb & 0x1f)
                     24: #define        BITMASK(pos)            MKMASK(BIT_WIDTH(pos), pos & 0x1f)
                     25: 
                     26: /* Register addresses */
                     27: #if    __ASSEMBLER__
                     28: # define       REG_ADDR(type, addr)    (addr)
                     29: #else  __ASSEMBLER__
                     30: # define       REG_ADDR(type, addr)    (*(volatile type *)(addr))
                     31: #endif __ASSEMBLER__
                     32: 
                     33: /* Cast a register to be an unsigned */
                     34: #define        CONTENTS(foo)   (*(unsigned *) &(foo))
                     35: 
                     36: /* STRINGIFY -- perform all possible substitutions, then stringify */
                     37: #define        __STR(x)        #x              /* just a helper macro */
                     38: #define        STRINGIFY(x)    __STR(x)
                     39: 
                     40: 
                     41: #endif _NRW_REG_HELP_H_

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.