1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
/*@@
@header cctki_Schedule.h
@date Wed Sep 15 22:49:24 1999
@author Tom Goodale
@desc
Schedule stuff which can be seen by the rest of the flesh.
@enddesc
@version $Header$
@@*/
#ifndef _CCTKI_SCHEDULE_H_
#define _CCTKI_SCHEDULE_H_
/* Types needed by other routines. */
typedef enum {sched_mod_none, sched_before, sched_after, sched_while} t_sched_modifier_type;
typedef struct T_SCHED_MODIFIER
{
struct T_SCHED_MODIFIER *next;
t_sched_modifier_type type;
char *argument;
} t_sched_modifier;
#ifdef __cplusplus
extern "C" {
#endif
/* Routines to create items */
t_sched_modifier *CCTKi_ScheduleAddModifier(t_sched_modifier *orig,
const char *modifier,
const char *argument);
int CCTKi_ScheduleFunction
(
void *function,
const char *name,
const char *thorn,
const char *implementation,
const char *description,
const char *where,
const char *language,
int n_mem_groups,
int n_comm_groups,
int n_trigger_groups,
int n_before,
int n_after,
int n_while,
...
);
int CCTKi_ScheduleGroup
(
const char *name,
const char *thorn,
const char *implementation,
const char *description,
const char *where,
int n_mem_groups,
int n_comm_groups,
int n_trigger_groups,
int n_before,
int n_after,
int n_while,
...
);
int CCTKi_ScheduleGroupStorage(const char *group);
int CCTKi_ScheduleGroupComm(const char *group);
int CCTKi_ScheduleTraverse(const char *where,
void *GH,
int (*calling_function)(void *, void *, void *));
int CCTKi_ScheduleGHInit(void *GH);
int CCTKi_DoScheduleFunction
(
const char *gname,
const char *fname,
void *func,
t_sched_modifier *modifiers,
void *attributes
);
t_sched_modifier *CCTKi_DoScheduleAddModifier(t_sched_modifier *orig,
const char *modifier,
const char *argument);
int CCTKi_DoScheduleGroup
(
const char *gname,
const char *thisname,
t_sched_modifier *modifiers,
void *attributes
);
/* Routine to sort the groups - must be called before traversal. */
int CCTKi_DoScheduleSortAllGroups(void);
/* Traversal routine */
int CCTKi_DoScheduleTraverse
(
const char *group_name,
int (*item_entry)(void *, void *),
int (*item_exit)(void *, void *),
int (*while_check)(int, char **, void *, void *),
int (*function_process)(void *, void *, void *),
void *data
);
#ifdef __cplusplus
}
#endif
#endif /* _CCTKI_SCHEDULE_H_ */
|