|
|
1.1 ! root 1: /* ryoperation.c - ROSY: operations */ ! 2: ! 3: #ifndef lint ! 4: static char *rcsid = "$Header: /f/osi/rosy/RCS/ryoperation.c,v 6.0 89/03/18 23:42:56 mrose Rel $"; ! 5: #endif ! 6: ! 7: /* ! 8: * $Header: /f/osi/rosy/RCS/ryoperation.c,v 6.0 89/03/18 23:42:56 mrose Rel $ ! 9: * ! 10: * ! 11: * $Log: ryoperation.c,v $ ! 12: * Revision 6.0 89/03/18 23:42:56 mrose ! 13: * Release 5.0 ! 14: * ! 15: */ ! 16: ! 17: /* ! 18: * NOTICE ! 19: * ! 20: * Acquisition, use, and distribution of this module and related ! 21: * materials are subject to the restrictions of a license agreement. ! 22: * Consult the Preface in the User's Manual for the full terms of ! 23: * this agreement. ! 24: * ! 25: */ ! 26: ! 27: ! 28: /* LINTLIBRARY */ ! 29: ! 30: #include <stdio.h> ! 31: #include "rosy.h" ! 32: ! 33: ! 34: #define missingP(p) \ ! 35: { \ ! 36: if (p == NULL) \ ! 37: return rosaplose (roi, ROS_PARAMETER, NULLCP, \ ! 38: "mandatory parameter \"%s\" missing", "p"); \ ! 39: } ! 40: ! 41: /* OPERATION */ ! 42: ! 43: int RyOperation (sd, ryo, op, in, out, response, roi) ! 44: int sd; ! 45: register struct RyOperation *ryo; ! 46: int op, ! 47: *response; ! 48: caddr_t in, ! 49: *out; ! 50: struct RoSAPindication *roi; ! 51: { ! 52: int result; ! 53: ! 54: #ifdef notdef /* let RyOpInvoke check these as necessary */ ! 55: missingP (ryo); ! 56: missingP (in); ! 57: #endif ! 58: missingP (out); ! 59: missingP (response); ! 60: missingP (roi); ! 61: ! 62: switch (result = RyOpInvoke (sd, ryo, op, in, out, NULLIFP, NULLIFP, ! 63: ROS_SYNC, RyGenID (sd), ! 64: NULLIP, ROS_NOPRIO, roi)) { ! 65: case NOTOK: ! 66: return NOTOK; ! 67: ! 68: case OK: ! 69: switch (roi -> roi_type) { ! 70: case ROI_RESULT: ! 71: *response = RY_RESULT; ! 72: return OK; ! 73: ! 74: case ROI_ERROR: /* XXX: hope roe -> roe_error != NOTOK */ ! 75: { ! 76: struct RoSAPerror *roe = &roi -> roi_error; ! 77: ! 78: *response = roe -> roe_error; ! 79: return OK; ! 80: } ! 81: ! 82: case ROI_UREJECT: ! 83: { ! 84: struct RoSAPureject *rou = &roi -> roi_ureject; ! 85: ! 86: return rosaplose (roi, rou -> rou_reason, NULLCP, ! 87: NULLCP); ! 88: } ! 89: ! 90: default: ! 91: return rosaplose (roi, ROS_PROTOCOL, NULLCP, ! 92: "unknown indication type=%d", roi -> roi_type); ! 93: } ! 94: ! 95: case DONE: ! 96: return DONE; ! 97: ! 98: default: ! 99: return rosaplose (roi, ROS_PROTOCOL, NULLCP, ! 100: "unknown return from RyInvoke=%d", result); ! 101: } ! 102: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.