#include <perms.h>

//          Edinburgh IMP77 Compiler - Version 8.4
//
//     1  !
//     2  !      specs for deimos perm routines
//     3  !
//     4  %externalroutinespec pon(%record(*) %name p)

extern void PON(struct FILE *P);

//     5  %externalroutinespec poff(%record(*) %name p)

extern void POFF(struct FILE *P);

//     6  %externalroutinespec ponoff(%record(*) %name p)

extern void PONOFF(struct FILE *P);

//     7  %externalintegerfnspec mapvirt(%integer ser,seg1,seg2)

extern int MAPVIRT(int SER, int SEG1, int SEG2);

//     8  %externalintegerfnspec map abs(%integer vadd,len,id)

extern int MAPABS(int VADD, int LEN, int ID);

//     9  %externalintegerfnspec getid

extern int GETID(void);

//    10  %externalroutinespec alarm(%integer ticks)

extern void ALARM(int TICKS);

//    11  %externalroutinespec linkin(%integer ser)

extern void LINKIN(int SER);

//    12  %externalroutinespec maphwr(%integer segs)

extern void MAPHWR(int SEGS);

//    13  %externalintegerfnspec mappsect(%integer seg,task)

extern int MAPPSECT(int SEG, int TASK);

//    14  %externalroutinespec push(%record(*)%name q,%record(*)%name m)

extern void PUSH(struct FILE *Q, struct FILE *M);

//    15  %externalrecord(*)%mapspec pop(%record(*)%name q)

extern struct FILE *POP(struct FILE *Q)
    ;

//    16  %externalintegerfnspec time

extern int TIME(void);

//    17  %externalroutinespec set prio(%integer prio)

extern void SETPRIO(int PRIO);

//    18  %constbyteintegername own id==(8_160030);   !8.1 compiler bug

const unsigned char *OWNID = 57368;

//    19  %constbyteintegername fsys == k'160055'

const unsigned char *FSYS = 57389;

//    20  %constbyteintegername id == k'160030'

const unsigned char *ID = 57368;

//    21  %constbyteintegername int==(8_160060)

const unsigned char *INT = 57392;

//    22  %constbytename callid == k'160031'

const unsigned char *CALLID = 57369;

//    23  %constbyteintegername tt no == k'160061'

const unsigned char *TTNO = 57393;

//    24  %constbyteintegername change out zero == k'160310'

const unsigned char *CHANGEOUTZERO = 57544;

//    25  %constrecord (*) %name null == 0

const struct FILE *NULL = 0;

//    26  %externalroutinespec CLOSE OUTPUT;     ! until proper one in compiler

extern void CLOSEOUTPUT(void);

//    27  %externalintegerfnspec dup addr(%integer seg)

extern int DUPADDR(int SEG);

//    28  %endoffile