[project @ 1998-12-02 13:17:09 by simonm]
[ghc-hetmet.git] / ghc / rts / gum / ParTypes.h
1 /************************************************************************
2  *                                                                      *
3  * Runtime system types for GUM                                         *
4  *                                                                      *
5  ************************************************************************/
6
7 #ifndef PARTYPES_H
8 #define PARTYPES_H
9
10 #ifdef PAR /* all of it */
11
12 typedef struct hashtable HashTable;
13 typedef struct hashlist HashList;
14
15 typedef double REAL_TIME;
16 typedef int GLOBAL_TASK_ID;
17 typedef int PACKET;
18 typedef int OPCODE;
19 typedef W_ TIME;
20 typedef GLOBAL_TASK_ID PROC;
21
22 /* Global addresses, in all their glory */
23
24 typedef struct {
25     union {
26         P_ plc;
27         struct {
28             GLOBAL_TASK_ID gtid;
29             int slot;
30         } gc;
31     } loc;
32     unsigned weight;
33 } globalAddr;
34
35 /* (GA, LA) pairs */
36 typedef struct gala {
37     globalAddr ga;
38     P_ la;
39     struct gala *next;
40     rtsBool preferred;
41 } GALA;
42
43 #if defined(GRAN)
44 typedef unsigned long TIME;
45 typedef unsigned char PROC;
46 typedef unsigned char EVTTYPE;
47 #endif
48
49 #endif /* PAR */
50
51 #endif /* ! PARTYPES_H */
52
53