*
* -------------------------------------------------------------------------- */
-#ifndef CLOSURES_H
-#define CLOSURES_H
+#ifndef RTS_STORAGE_CLOSURES_H
+#define RTS_STORAGE_CLOSURES_H
/*
* The Layout of a closure header depends on which kind of system we're
-------------------------------------------------------------------------- */
typedef struct {
- const struct _StgInfoTable* info;
+ const StgInfoTable* info;
#ifdef PROFILING
StgProfHeader prof;
#endif
} StgHeader;
typedef struct {
- const struct _StgInfoTable* info;
+ const StgInfoTable* info;
#ifdef PROFILING
StgProfHeader prof;
#endif
/* All closures follow the generic format */
-struct StgClosure_ {
+typedef struct StgClosure_ {
StgHeader header;
struct StgClosure_ *payload[FLEXIBLE_ARRAY];
-};
+} *StgClosurePtr; // StgClosure defined in Rts.h
typedef struct {
StgThunkHeader header;
StgHeader header;
StgClosure *indirectee;
StgClosure *static_link;
- struct _StgInfoTable *saved_info;
+ StgInfoTable *saved_info;
} StgIndStatic;
typedef struct {
-------------------------------------------------------------------------- */
typedef struct {
- const struct _StgInfoTable* info;
+ const StgInfoTable* info;
StgWord liveness;
StgWord ret_addr;
StgClosure * payload[FLEXIBLE_ARRAY];
* The stack frame size is also cached in the frame for convenience.
*/
typedef struct {
- const struct _StgInfoTable* info;
+ const StgInfoTable* info;
StgWord size;
StgClosure * fun;
StgClosure * payload[FLEXIBLE_ARRAY];
StgClosure *alt_code;
} StgCatchRetryFrame;
-#endif /* CLOSURES_H */
+#endif /* RTS_STORAGE_CLOSURES_H */