home *** CD-ROM | disk | FTP | other *** search
- #pragma force_top_level
- #pragma include_only_once
-
- /*Name: swis.h
- Purpose: Generalised SWI interface
- Author: (c) Acorn Computers Ltd, 1989
- Version: 2.02 (21-Nov-1991)
- Hacked by BDB to add _INR,_OUTR and to separate off
- */
-
- #ifndef ___swis_h
- #define ___swis_h
-
- #ifndef __kernel_h
- #include "kernel.h"
- #endif
-
- extern int _swi (int swi_no, unsigned int, ...);
-
- extern _kernel_oserror *_swix (int swi_no, unsigned int, ...);
-
- #define _FLAGS 0x10 /*use with _RETURN() or _OUT()*/
- #define _IN(i) (1U << (i))
- #define _INR(i,j) (~0 << (i) ^ ~0 << (j)+1)
- #define _OUT(i) ((i) != _FLAGS? 1U << 31 - (i): 1U << 21)
- #define _OUTR(i,j) (~0U >> (i) ^ ~0U >> (j)+1)
- #define _BLOCK(i) (1U << 11 | (unsigned) (i) << 12)
- #define _RETURN(i) ((i) != _FLAGS? (unsigned) (i) << 16: 0xFU << 16)
- #define _V (1U << 28)
- #define _C (1U << 29)
- #define _Z (1U << 30)
- #define _N (1U << 31)
-
- #define R0 0
- #define R1 1
- #define R2 2
- #define R3 3
- #define R4 4
-
- #endif
-