1 /* structures and functions necessary to access amiga ROM services */
7 #define ALIB_MEMF_ANY 0L
8 #define ALIB_MEMF_PUBLIC 0x0001L
9 #define ALIB_MEMF_CHIP 0x0002L
10 #define ALIB_MEMF_FAST 0x0004L
11 #define ALIB_MEMF_CLEAR 0x0100L
12 #define ALIB_MEMF_LARGEST 0x0200L
13 #define ALIB_MEMF_REVERSE 0x0400L
14 #define ALIB_MEMF_TOTAL 0x0800L
16 #define ALIB_NODE_COMMON(NODE_TYPE) \
23 struct alib_memchunk {
24 struct alib_memchunk *next;
26 } __attribute__((packed));
28 struct alib_intrnode {
29 ALIB_NODE_COMMON(struct alib_intrnode);
32 } __attribute__((packed));
35 ALIB_NODE_COMMON(struct alib_memnode);
37 struct alib_memchunk *freelist;
40 } __attribute__((packed));
43 struct alib_memnode *head, *tail, *tailpred;
46 } __attribute__((packed));
49 ALIB_NODE_COMMON(struct alib_library);
52 uint16_t negsz, possz;
53 uint16_t ver_major, ver_minor;
57 } __attribute__((packed));
62 struct alib_intrnode *node;
63 } __attribute__((packed));
65 struct alib_execbase {
66 struct alib_library lib;
70 void *coldcap_vect, *coolcap_vect, *warmcap_vect;
71 void *sysstack_upper, *sysstack_lower;
73 void *dbg_entry, *dbg_data, *alert_data;
77 struct alib_intvec intvec[16];
80 uint32_t idle_count, disp_count;
81 uint16_t tmslice, nticks;
83 int8_t intr_dis_nest, task_dis_nest;
84 uint16_t attn_flags, attn_resched;
86 void *tasktrap, *taskexcept, *taks_exit;
87 uint32_t task_sig_alloc;
88 uint16_t task_trap_alloc;
90 struct alib_memlist memlist;
92 } __attribute__((packed));
94 struct alib_execbase *execbase;
98 #endif /* AMIGALIB_H_ */