|
|
1.1 root 1: ...
2:
3: int do_result (), do_error ();
4:
5: ...
6:
7: int result;
8: struct RoSAPindication rois;
9: register struct RoSAPindication *roi = &rois;
10: register struct RoSAPpreject *rop = &roi -> roi_preject;
11:
12: /* allocate and initialize ``arg'' here... */
13:
14: switch (result = stub_MODULE_operation (sd, RyGenID (sd), arg, do_result,
15: do_error, ROS_SYNC, roi)) {
16: case NOTOK: /* failure */
17: if (ROS_FATAL (rop -> rop_reason))
18: ros_adios (rop, "STUB");
19: ros_advise (rop, "STUB");
20: break;
21:
22: case OK:
23: break;
24:
25: case DONE: /* got RO-END? */
26: adios (NULLCP, "got RO-END.INDICATION");
27: /* NOTREACHED */
28:
29: default:
30: adios (NULLCP, "unknown return from RyStub=%d", result);
31: /* NOTREACHED */
32: }
33:
34: free_MODULE_argument (arg);
35:
36: ...
37:
38: do_result (sd, id, dummy, result, roi)
39: int sd;
40: int id,
41: dummy;
42: struct type_MODULE_result *result;
43: struct RoSAPindication *roi;
44: {
45: /* do something with ``result'' here... */
46:
47: /* ``result'' will be automatically free'd when do_result returns */
48:
49: return OK;
50: }
51:
52: ...
53:
54:
55: do_error (sd, id, error, parameter, roi)
56: int sd;
57: int id,
58: error;
59: caddr_t parameter;
60: struct RoSAPindication *roi;
61: {
62: switch (error) {
63: case error_MODULE_error1:
64: {
65: register struct type_MODULE_parameter *parm =
66: (struct type_MODULE_parameter *) parameter;
67:
68: /* do something with ``parm'' here... */
69:
70: break;
71: }
72:
73: /* other errors are handled here... */
74:
75:
76: default:
77: adios (NULLCP, "unknown error returned (%d)", error);
78: /* NOTREACHED */
79: }
80:
81: /* ``parameter'' will be automatically free'd when do_error returns */
82:
83: return OK;
84: }
85:
86: ...
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.