46 lines
1.5 KiB
C
46 lines
1.5 KiB
C
/******************************************************************************
|
|
* Copyright (c) 2004, 2008 IBM Corporation
|
|
* All rights reserved.
|
|
* This program and the accompanying materials
|
|
* are made available under the terms of the BSD License
|
|
* which accompanies this distribution, and is available at
|
|
* http://www.opensource.org/licenses/bsd-license.php
|
|
*
|
|
* Contributors:
|
|
* IBM Corporation - initial implementation
|
|
*****************************************************************************/
|
|
//
|
|
// Copyright 2002,2003,2004 Segher Boessenkool <segher@kernel.crashing.org>
|
|
//
|
|
|
|
|
|
#define _N(_n) { .n = _n },
|
|
#define _O(_n) { .n = CELLSIZE * (_n) },
|
|
#define _C(_c) { .c = _c },
|
|
#define _A(_a) { .a = _a },
|
|
|
|
#define ref(_xt, _nname) _A(xt_ ## _xt + _nname)
|
|
#define header(_xt, _header...) static cell xt_ ## _xt[] = { _header
|
|
#define def(_xts...) _xts };
|
|
#define lab(_xt) _A(&&code_ ## _xt)
|
|
|
|
#define DOCOL lab(DOCOL)
|
|
#define DODOES lab(DODOES)
|
|
#define DODEFER lab(DODEFER)
|
|
#define DOALIAS lab(DOALIAS)
|
|
#define DOCON lab(DOCON)
|
|
#define DOVAL lab(DOVAL)
|
|
#define DOFIELD lab(DOFIELD)
|
|
#define DOVAR lab(DOVAR)
|
|
#define DOBUFFER_X3a lab(DOBUFFER_X3a)
|
|
|
|
#define cod(_xt) def(lab(_xt))
|
|
#define col(_xt, _def...) def(DOCOL _def SEMICOLON)
|
|
#define con(_xt, _def) def(DOCON _N(_def))
|
|
#define dfr(_xt) def(DODEFER _N(0))
|
|
#define val(_xt, _def) def(DOVAL _N(_def))
|
|
#define var(_xt, _def) def(DOVAR _N(_def))
|
|
|
|
|
|
#define raw(_xt, _def) def(_def)
|
|
#define str(_xt, _def...) def(_def)
|