Lines Matching refs:rt

180 	register routine_t *rt = rtAlloc();  in rtMakeRoutine()  local
182 rt->rtName = name; in rtMakeRoutine()
183 rt->rtKind = rkRoutine; in rtMakeRoutine()
184 rt->rtArgs = args; in rtMakeRoutine()
186 return rt; in rtMakeRoutine()
192 register routine_t *rt = rtAlloc(); in rtMakeSimpleRoutine() local
194 rt->rtName = name; in rtMakeSimpleRoutine()
195 rt->rtKind = rkSimpleRoutine; in rtMakeSimpleRoutine()
196 rt->rtArgs = args; in rtMakeSimpleRoutine()
198 return rt; in rtMakeSimpleRoutine()
315 rtPrintRoutine(register routine_t *rt) in rtPrintRoutine() argument
319 printf("%s (%d) %s(", rtRoutineKindToStr(rt->rtKind), in rtPrintRoutine()
320 rt->rtNumber, rt->rtName); in rtPrintRoutine()
322 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) in rtPrintRoutine()
352 rtCheckFit(routine_t *rt, u_int mask, boolean_t *fitp, boolean_t *uselimp, u_int *knownp) in rtCheckFit() argument
358 if (!rt->rtSimpleRequest) in rtCheckFit()
360 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) in rtCheckFit()
395 rtFindHowMany(routine_t *rt) in rtFindHowMany() argument
401 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) { in rtFindHowMany()
415 rt->rtCountPortsIn += it->itNumber * multiplier; in rtFindHowMany()
418 rt->rtCountOolPortsIn += it->itNumber * multiplier; in rtFindHowMany()
421 rt->rtCountOolIn += (it->itNumber * it->itSize + 7)/8 * multiplier; in rtFindHowMany()
426 rt->rtCountPortsOut += it->itNumber * multiplier; in rtFindHowMany()
429 rt->rtCountOolPortsOut += it->itNumber * multiplier; in rtFindHowMany()
432 rt->rtCountOolOut += ((it->itNumber * it->itSize + 7)/8) * multiplier; in rtFindHowMany()
534 rtDefaultArgKind(routine_t *rt, argument_t *arg) in rtDefaultArgKind() argument
536 if ((arg->argKind == akNone) && (rt->rtRequestPort == argNULL)) in rtDefaultArgKind()
862 rtCheckRoutineArg(routine_t *rt, argument_t *arg) in rtCheckRoutineArg() argument
867 if (rt->rtRequestPort != argNULL) in rtCheckRoutineArg()
869 rt->rtName, rt->rtRequestPort->argName); in rtCheckRoutineArg()
870 rt->rtRequestPort = arg; in rtCheckRoutineArg()
874 if (rt->rtReplyPort != argNULL) in rtCheckRoutineArg()
876 rt->rtName, rt->rtReplyPort->argName); in rtCheckRoutineArg()
877 rt->rtReplyPort = arg; in rtCheckRoutineArg()
881 if (rt->rtWaitTime != argNULL) in rtCheckRoutineArg()
882 …warn("multiple WaitTime/SendTime type args in %s; %s won't be used", rt->rtName, rt->rtWaitTime->a… in rtCheckRoutineArg()
883 rt->rtWaitTime = arg; in rtCheckRoutineArg()
887 if (rt->rtWaitTime != argNULL) { in rtCheckRoutineArg()
888 if (akIdent(rt->rtWaitTime->argKind) == akeWaitTime) { in rtCheckRoutineArg()
889 …warn("SendTime type argument after a WaitTime in %s; SendTime %s won't be used", rt->rtName, arg->… in rtCheckRoutineArg()
892 … warn("multiple SendTime type args in %s; %s won't be used", rt->rtName, rt->rtWaitTime->argName); in rtCheckRoutineArg()
894 rt->rtWaitTime = arg; in rtCheckRoutineArg()
898 if (rt->rtMsgOption != argNULL) in rtCheckRoutineArg()
900 rt->rtName, rt->rtMsgOption->argName); in rtCheckRoutineArg()
901 rt->rtMsgOption = arg; in rtCheckRoutineArg()
912 rtSetArgDefaults(routine_t *rt, register argument_t *arg) in rtSetArgDefaults() argument
914 arg->argRoutine = rt; in rtSetArgDefaults()
961 if ((rt->rtRequestPort != argNULL) && in rtSetArgDefaults()
962 (rt->rtRequestPort->argPoly == arg) && in rtSetArgDefaults()
968 if ((rt->rtReplyPort != argNULL) && in rtSetArgDefaults()
969 (rt->rtReplyPort->argPoly == arg) && in rtSetArgDefaults()
1138 rtCheckRoutineArgs(routine_t *rt) in rtCheckRoutineArgs() argument
1142 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) in rtCheckRoutineArgs()
1146 rtDefaultArgKind(rt, arg); in rtCheckRoutineArgs()
1147 rtCheckRoutineArg(rt, arg); in rtCheckRoutineArgs()
1150 rtSetArgDefaults(rt, arg); in rtCheckRoutineArgs()
1205 rtCheckArgTypes(routine_t *rt) in rtCheckArgTypes() argument
1207 if (rt->rtRequestPort == argNULL) in rtCheckArgTypes()
1209 rtRoutineKindToStr(rt->rtKind), rt->rtName); in rtCheckArgTypes()
1211 if ((rt->rtRequestPort != argNULL) && in rtCheckArgTypes()
1212 (rt->rtRequestPort->argType != itNULL)) in rtCheckArgTypes()
1213 itCheckRequestPortType(rt->rtRequestPort->argName, in rtCheckArgTypes()
1214 rt->rtRequestPort->argType); in rtCheckArgTypes()
1216 if ((rt->rtReplyPort != argNULL) && in rtCheckArgTypes()
1217 (rt->rtReplyPort->argType != itNULL)) in rtCheckArgTypes()
1218 itCheckReplyPortType(rt->rtReplyPort->argName, in rtCheckArgTypes()
1219 rt->rtReplyPort->argType); in rtCheckArgTypes()
1221 if ((rt->rtWaitTime != argNULL) && in rtCheckArgTypes()
1222 (rt->rtWaitTime->argType != itNULL)) in rtCheckArgTypes()
1223 itCheckIntType(rt->rtWaitTime->argName, in rtCheckArgTypes()
1224 rt->rtWaitTime->argType); in rtCheckArgTypes()
1226 if ((rt->rtMsgOption != argNULL) && in rtCheckArgTypes()
1227 (rt->rtMsgOption->argType != itNULL)) in rtCheckArgTypes()
1228 itCheckIntType(rt->rtMsgOption->argName, in rtCheckArgTypes()
1229 rt->rtMsgOption->argType); in rtCheckArgTypes()
1231 if ((IsKernelServer && rt->rtServerImpl) || in rtCheckArgTypes()
1232 (IsKernelUser && rt->rtUserImpl)) in rtCheckArgTypes()
1235 if (rt->rtServerImpl) in rtCheckArgTypes()
1236 rtCheckMaskFunction(rt->rtArgs, akbServerImplicit, rtCheckTrailerType); in rtCheckArgTypes()
1237 if (rt->rtUserImpl) in rtCheckArgTypes()
1238 rtCheckMaskFunction(rt->rtArgs, akbUserImplicit, rtCheckTrailerType); in rtCheckArgTypes()
1254 rtCheckArgTrans(routine_t *rt) in rtCheckArgTrans() argument
1260 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) { in rtCheckArgTrans()
1279 rtAddRetCode(routine_t *rt) in rtAddRetCode() argument
1286 rt->rtRetCode = arg; in rtAddRetCode()
1288 arg->argNext = rt->rtArgs; in rtAddRetCode()
1289 rt->rtArgs = arg; in rtAddRetCode()
1299 rtProcessRetCode(routine_t *rt) in rtProcessRetCode() argument
1302 if (!rt->rtOneWay && !rt->rtSimpleReply) { in rtProcessRetCode()
1303 register argument_t *arg = rt->rtRetCode; in rtProcessRetCode()
1309 if (rt->rtRetCArg != argNULL && !rt->rtSimpleRequest) { in rtProcessRetCode()
1310 register argument_t *arg = rt->rtRetCArg; in rtProcessRetCode()
1322 rtAddNdrCode(routine_t *rt) in rtAddNdrCode() argument
1329 rt->rtNdrCode = arg; in rtAddNdrCode()
1332 arg->argNext = rt->rtArgs; in rtAddNdrCode()
1333 rt->rtArgs = arg; in rtAddNdrCode()
1341 rtProcessNdrCode(routine_t *rt) in rtProcessNdrCode() argument
1343 register argument_t *ndr = rt->rtNdrCode; in rtProcessNdrCode()
1366 if (!rt->rtOneWay) in rtProcessNdrCode()
1368 if ((arg == rt->rtRetCode && akCheck(arg->argKind, akbReply)) || in rtProcessNdrCode()
1369 (arg != rt->rtRetCode && in rtProcessNdrCode()
1377 if (!found && !akCheck(rt->rtRetCode->argKind, akbReply)) in rtProcessNdrCode()
1388 rtAddWaitTime(routine_t *rt, identifier_t name, arg_kind_t kind) in rtAddWaitTime() argument
1397 rt->rtWaitTime = arg; in rtAddWaitTime()
1401 if (rt->rtMsgOption != argNULL) in rtAddWaitTime()
1402 loc = &rt->rtMsgOption->argNext; in rtAddWaitTime()
1404 loc = &rt->rtArgs; in rtAddWaitTime()
1409 rtSetArgDefaults(rt, arg); in rtAddWaitTime()
1419 rtAddMsgOption(routine_t *rt, identifier_t name) in rtAddMsgOption() argument
1428 rt->rtMsgOption = arg; in rtAddMsgOption()
1432 loc = &rt->rtArgs; in rtAddMsgOption()
1437 rtSetArgDefaults(rt, arg); in rtAddMsgOption()
1446 rtProcessMsgOption(routine_t *rt) in rtProcessMsgOption() argument
1448 register argument_t *msgop = rt->rtMsgOption; in rtProcessMsgOption()
1454 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) in rtProcessMsgOption()
1479 rtAddDummyReplyPort(routine_t *rt, ipc_type_t *type) in rtAddDummyReplyPort() argument
1488 rt->rtReplyPort = arg; in rtAddDummyReplyPort()
1492 if (rt->rtRequestPort != argNULL) in rtAddDummyReplyPort()
1493 loc = &rt->rtRequestPort->argNext; in rtAddDummyReplyPort()
1495 loc = &rt->rtArgs; in rtAddDummyReplyPort()
1500 rtSetArgDefaults(rt, arg); in rtAddDummyReplyPort()
1511 rtCheckOverwrite(register routine_t *rt) in rtCheckOverwrite() argument
1514 register int howmany = rt->rtOverwrite; in rtCheckOverwrite()
1516 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) { in rtCheckOverwrite()
1538 rtCheckVariable(register routine_t *rt) in rtCheckVariable() argument
1546 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) { in rtCheckVariable()
1587 rt->rtNumRequestVar = NumRequestVar; in rtCheckVariable()
1588 rt->rtNumReplyVar = NumReplyVar; in rtCheckVariable()
1589 rt->rtMaxRequestPos = MaxRequestPos; in rtCheckVariable()
1590 rt->rtMaxReplyPos = MaxReplyPos; in rtCheckVariable()
1598 rtCheckDestroy(register routine_t *rt) in rtCheckDestroy() argument
1602 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) { in rtCheckDestroy()
1622 rtAddByReference(register routine_t *rt) in rtAddByReference() argument
1626 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) { in rtAddByReference()
1657 rtAddSameCount(register routine_t *rt) in rtAddSameCount() argument
1661 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) in rtAddSameCount()
1693 rtCheckRoutine(register routine_t *rt) in rtCheckRoutine() argument
1697 rt->rtErrorName = ErrorProc; in rtCheckRoutine()
1698 rt->rtOneWay = (rt->rtKind == rkSimpleRoutine); in rtCheckRoutine()
1699 rt->rtServerName = strconcat(ServerPrefix, rt->rtName); in rtCheckRoutine()
1700 rt->rtUserName = strconcat(UserPrefix, rt->rtName); in rtCheckRoutine()
1704 rtAddRetCode(rt); in rtCheckRoutine()
1705 rtAddNdrCode(rt); in rtCheckRoutine()
1711 rtCheckRoutineArgs(rt); in rtCheckRoutine()
1716 if (rt->rtReplyPort == argNULL) { in rtCheckRoutine()
1717 if (rt->rtOneWay) in rtCheckRoutine()
1718 rtAddDummyReplyPort(rt, itZeroReplyPortType); in rtCheckRoutine()
1720 rtAddDummyReplyPort(rt, itRealReplyPortType); in rtCheckRoutine()
1722 if (rt->rtMsgOption == argNULL) { in rtCheckRoutine()
1724 rtAddMsgOption(rt, "MACH_MSG_OPTION_NONE"); in rtCheckRoutine()
1726 rtAddMsgOption(rt, MsgOption); in rtCheckRoutine()
1728 if (rt->rtWaitTime == argNULL) { in rtCheckRoutine()
1730 rtAddWaitTime(rt, WaitTime, akeWaitTime); in rtCheckRoutine()
1732 rtAddWaitTime(rt, SendTime, akeSendTime); in rtCheckRoutine()
1738 rtCheckArgTypes(rt); in rtCheckRoutine()
1739 rtCheckArgTrans(rt); in rtCheckRoutine()
1741 if (rt->rtOneWay && in rtCheckRoutine()
1742 (rtCheckMask(rt->rtArgs, akbReturn) || rt->rtUserImpl)) in rtCheckRoutine()
1744 rtRoutineKindToStr(rt->rtKind), rt->rtName); in rtCheckRoutine()
1753 rt->rtServerImpl = rtCountMask(rt->rtArgs, akbServerImplicit); in rtCheckRoutine()
1754 rt->rtUserImpl = rtCountMask(rt->rtArgs, akbUserImplicit); in rtCheckRoutine()
1762 rtCheckSimple(rt->rtArgs, akbRequest, &rt->rtSimpleRequest); in rtCheckRoutine()
1764 rtCheckSimple(rt->rtArgs, akbReply, &rt->rtSimpleReply); in rtCheckRoutine()
1766 rt->rtRequestKPDs = rtCountKPDs(rt->rtArgs, akbSendKPD); in rtCheckRoutine()
1767 rt->rtReplyKPDs = rtCountKPDs(rt->rtArgs, akbReturnKPD); in rtCheckRoutine()
1775 if ((rt->rtOverwrite = rtCountFlags(rt->rtArgs, flOverwrite))) { in rtCheckRoutine()
1776 rtCheckOverwrite(rt); in rtCheckRoutine()
1777 rt->rtOverwriteKPDs = rtCountKPDs(rt->rtArgs, akbReturnKPD|akbOverwrite); in rtCheckRoutine()
1782 … rtCheckFit(rt, akbRequest, &rt->rtRequestFits, &rt->rtRequestUsedLimit, &rt->rtRequestSizeKnown); in rtCheckRoutine()
1783 rtCheckFit(rt, akbReply, &rt->rtReplyFits, &rt->rtReplyUsedLimit, &rt->rtReplySizeKnown); in rtCheckRoutine()
1785 rtCheckVariable(rt); in rtCheckRoutine()
1786 rtCheckDestroy(rt); in rtCheckRoutine()
1787 rtAddByReference(rt); in rtCheckRoutine()
1788 rtSuffixExtArg(rt->rtArgs); in rtCheckRoutine()
1789 rtAddSameCount(rt); in rtCheckRoutine()
1790 rtProcessRetCode(rt); in rtCheckRoutine()
1791 rtProcessNdrCode(rt); in rtCheckRoutine()
1792 if (rt->rtUserImpl) in rtCheckRoutine()
1793 rtProcessMsgOption(rt); in rtCheckRoutine()
1795 rt->rtNoReplyArgs = !rtCheckMask(rt->rtArgs, akbReturnSnd); in rtCheckRoutine()
1799 rtFindHowMany(rt); in rtCheckRoutine()
1803 rtMinRequestSize(FILE *file, routine_t *rt, const char *str) in rtMinRequestSize() argument
1806 rtSizeDelta(file, akbRequest, rt); in rtMinRequestSize()
1811 rtMinReplySize(FILE *file, routine_t *rt, const char *str) in rtMinReplySize() argument
1814 rtSizeDelta(file, akbReply, rt); in rtMinReplySize()
1819 rtSizeDelta(FILE *file, u_int mask, routine_t *rt) in rtSizeDelta() argument
1826 if (!rt->rtSimpleRequest) in rtSizeDelta()
1829 for (arg = rt->rtArgs; arg != argNULL; arg = arg->argNext) in rtSizeDelta()