2.11BSD/sys/pdp/DEFS.h
/*
* Copyright (c) 1987 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)DEFS.h 1.2 (2.11BSD GTE) 12/24/92
*/
#ifndef _DEFS_
#define _DEFS_
/*
* Machine language assist. Uses the C preprocessor to produce suitable code
* for various 11's.
*/
#include "localopts.h"
#include "assym.h"
#define INTSTK 500. /* bytes for interrupt stack */
#ifdef PROF
# define HIGH 06 /* See also the :splfix files */
# define HIPRI 0300 /* Many spl's are done in-line */
#else
# define HIGH 07
# define HIPRI 0340
#endif
# define NET 02
# define NETPRI 0100
/*
* adapt to any 11 at boot
*/
#ifdef GENERIC
# undef NONSEPARATE /* Enable support for separate I&D if found */
#endif
#ifdef NONSEPARATE /* 11/40, 34, 23, 24 */
# define mfpd mfpi
# define mtpd mtpi
#endif
#if defined(GENERIC) || defined(SUPERVISOR) || defined(NONSEPARATE)
/*
* GENERIC: movb instruction are available on all PDP-11s.
*
* SUPERVISOR: can't use spl instructions even if the machine
* supports them since spl is a privileged instruction.
*/
# define SPLHIGH movb $HIPRI,PS
# define SPL7 movb $0340,PS
# define SPLLOW clrb PS
# define SPLNET movb $NETPRI,PS
#else
# define SPLHIGH spl HIGH
# define SPL7 spl 7
# define SPLLOW spl 0
# define SPLNET spl NET
#endif
#define CONST(s, x, v) DEC_/**/s(x); x=v;
#define INT(s, x, v) .data; .even; DEC_/**/s(x); x:; v; .text;
#define CHAR(s, x, v) .data; DEC_/**/s(x); x:; .byte v; .text;
#define STRING(s, x, v) .data; DEC_/**/s(x); x:; v; .text;
#define SPACE(s, x, n) .bss; .even; DEC_/**/s(x); x:; .=.+[n]; .text;
#define DEC_GLOBAL(x) .globl x;
#define DEC_LOCAL(x)
/*
* Macros for compatibility with standard library routines that we have
* copies of ...
*/
#define ENTRY(x) .globl _/**/x; _/**/x:;
#define ASENTRY(x) .globl x; x:;
#define P_ENTRY(x) .globl _/**/x; _/**/x:; PROFCODE;
#define P_ASENTRY(x) .globl x; x:; PROFCODE;
/*
* PROFCODE:
* - kernel profiling not currently implemented.
*/
#define PROFCODE ;
#endif _DEFS_