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
|
#!/usr/bin/python2
from __future__ import print_function
import sys
from generator import ops, fop_subs, cbk_subs, generate
FAILURE_CBK_TEMPLATE = """
int32_t
default_@NAME@_failure_cbk (call_frame_t *frame, int32_t op_errno)
{
STACK_UNWIND_STRICT (@NAME@, frame, -1, op_errno, @ERROR_ARGS@);
return 0;
}
"""
CBK_RESUME_TEMPLATE = """
int32_t
default_@NAME@_cbk_resume (call_frame_t *frame, void *cookie, xlator_t *this,
int32_t op_ret, int32_t op_errno, @LONG_ARGS@)
{
STACK_UNWIND_STRICT (@NAME@, frame, op_ret, op_errno,
@SHORT_ARGS@);
return 0;
}
"""
CBK_TEMPLATE = """
int32_t
default_@NAME@_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
int32_t op_ret, int32_t op_errno, @LONG_ARGS@)
{
STACK_UNWIND_STRICT (@NAME@, frame, op_ret, op_errno,
@SHORT_ARGS@);
return 0;
}
"""
RESUME_TEMPLATE = """
int32_t
default_@NAME@_resume (call_frame_t *frame, xlator_t *this, @LONG_ARGS@)
{
STACK_WIND (frame, default_@NAME@_cbk,
FIRST_CHILD(this), FIRST_CHILD(this)->fops->@NAME@,
@SHORT_ARGS@);
return 0;
}
"""
FOP_TEMPLATE = """
int32_t
default_@NAME@ (
call_frame_t *frame,
xlator_t *this,
@LONG_ARGS@)
{
STACK_WIND_TAIL (frame,
FIRST_CHILD(this), FIRST_CHILD(this)->fops->@NAME@,
@SHORT_ARGS@);
return 0;
}
"""
def gen_defaults ():
for name in list(ops.keys()):
print(generate(FAILURE_CBK_TEMPLATE, name, cbk_subs))
for name in list(ops.keys()):
print(generate(CBK_RESUME_TEMPLATE, name, cbk_subs))
for name in list(ops.keys()):
print(generate(CBK_TEMPLATE, name, cbk_subs))
for name in list(ops.keys()):
print(generate(RESUME_TEMPLATE, name, fop_subs))
for name in list(ops.keys()):
print(generate(FOP_TEMPLATE, name, fop_subs))
for l in open(sys.argv[1], 'r').readlines():
if l.find('#pragma generate') != -1:
print("/* BEGIN GENERATED CODE - DO NOT MODIFY */")
gen_defaults()
print("/* END GENERATED CODE */")
else:
print(l[:-1])
|