Lines Matching refs:file
269 WriteKPD_Iterator(FILE *file, boolean_t in, boolean_t overwrite, boolean_t varying, argument_t *arg… in WriteKPD_Iterator() argument
274 fprintf(file, "\t{\n"); in WriteKPD_Iterator()
275 fprintf(file, "\t register\t%s\t*ptr;\n", it->itKPDType); in WriteKPD_Iterator()
276 fprintf(file, "\t register int\ti"); in WriteKPD_Iterator()
278 fprintf(file, ", j"); in WriteKPD_Iterator()
279 fprintf(file, ";\n\n"); in WriteKPD_Iterator()
288 fprintf(file, "\t ptr = &%s->%s[0];\n", string, arg->argMsgField); in WriteKPD_Iterator()
295 fprintf(file, "\t if (%s%s > %d)\n", cref, count->argVarName, in WriteKPD_Iterator()
297 WriteReturnMsgError(file, arg->argRoutine, TRUE, arg, "MIG_ARRAY_TOO_LARGE"); in WriteKPD_Iterator()
298 fprintf(file, "\t for (i = 0; i < %s%s; ptr++, i++) %s\n", in WriteKPD_Iterator()
301 fprintf(file, "\t j = min(Out%dP->%s, %s%s);\n", count->argReplyPos, in WriteKPD_Iterator()
303 fprintf(file, "\t for (i = 0; i < j; ptr++, i++) %s\n", in WriteKPD_Iterator()
307 fprintf(file, "\t for (i = 0; i < %d; ptr++, i++) %s\n", it->itKPD_Number, in WriteKPD_Iterator()
317 WriteMyIncludes(FILE *file, statement_t *stats) in WriteMyIncludes() argument
327 fprintf(file, "#undef\tMACH_KERNEL\n"); in WriteMyIncludes()
339 fprintf(file, "#include \"%s\"\n", cp); in WriteMyIncludes()
345 WriteIncludes(file, TRUE, FALSE); in WriteMyIncludes()
356 fprintf(file, "#include \"%s\"\n", cp); in WriteMyIncludes()
359 WriteImplImports(file, stats, TRUE); in WriteMyIncludes()
363 fprintf(file, "#if\t__MigKernelSpecificCode\n"); in WriteMyIncludes()
364 fprintf(file, "#include <mig_debug.h>\n"); in WriteMyIncludes()
365 fprintf(file, "#endif\t/* __MigKernelSpecificCode */\n"); in WriteMyIncludes()
367 fprintf(file, "#if MIG_DEBUG\n"); in WriteMyIncludes()
368 fprintf(file, "#include <mach/mig_log.h>\n"); in WriteMyIncludes()
369 fprintf(file, "#endif /* MIG_DEBUG */\n"); in WriteMyIncludes()
371 fprintf(file, "/* LINTLIBRARY */\n"); in WriteMyIncludes()
372 fprintf(file, "\n"); in WriteMyIncludes()
374 fprintf(file, "#if\t%s\n", NewCDecl); in WriteMyIncludes()
375 fprintf(file, "#else\t/* %s */\n", NewCDecl); in WriteMyIncludes()
376 fprintf(file, "extern mach_port_t mig_get_reply_port();\n"); in WriteMyIncludes()
377 fprintf(file, "extern void mig_dealloc_reply_port();\n"); in WriteMyIncludes()
378 fprintf(file, "extern char *%s();\n", MessAllocRoutine); in WriteMyIncludes()
379 fprintf(file, "extern void %s();\n", MessFreeRoutine); in WriteMyIncludes()
380 fprintf(file, "#endif\t/* %s */\n", NewCDecl); in WriteMyIncludes()
382 fprintf(file, "\n"); in WriteMyIncludes()
386 WriteGlobalDecls(FILE *file) in WriteGlobalDecls() argument
389 WriteRCSDecl(file, strconcat(SubsystemName, "_user"), RCSId); in WriteGlobalDecls()
391 fprintf(file, "#define msgh_request_port\tmsgh_remote_port\n"); in WriteGlobalDecls()
392 fprintf(file, "#define msgh_reply_port\t\tmsgh_local_port\n"); in WriteGlobalDecls()
393 fprintf(file, "\n"); in WriteGlobalDecls()
395 WriteLogDefines(file, "MACH_MSG_LOG_USER"); in WriteGlobalDecls()
396 fprintf(file, "\n"); in WriteGlobalDecls()
400 WriteOneMachErrorDefine(FILE *file, const char *name, boolean_t timeout) in WriteOneMachErrorDefine() argument
402 fprintf(file, "#ifndef\t%s\n", name); in WriteOneMachErrorDefine()
403 fprintf(file, "#define\t%s(_R_) { \\\n", name); in WriteOneMachErrorDefine()
404 fprintf(file, "\tswitch (_R_) { \\\n"); in WriteOneMachErrorDefine()
405 fprintf(file, "\tcase MACH_SEND_INVALID_REPLY: \\\n"); in WriteOneMachErrorDefine()
406 fprintf(file, "\tcase MACH_RCV_INVALID_NAME: \\\n"); in WriteOneMachErrorDefine()
407 fprintf(file, "\tcase MACH_RCV_IN_SET: \\\n"); in WriteOneMachErrorDefine()
408 fprintf(file, "\tcase MACH_RCV_PORT_DIED: \\\n"); in WriteOneMachErrorDefine()
409 fprintf(file, "\tcase MACH_RCV_PORT_CHANGED: \\\n"); in WriteOneMachErrorDefine()
410 fprintf(file, "\tcase MACH_SEND_INVALID_MEMORY: \\\n"); in WriteOneMachErrorDefine()
411 fprintf(file, "\tcase MACH_SEND_INVALID_RIGHT: \\\n"); in WriteOneMachErrorDefine()
412 fprintf(file, "\tcase MACH_SEND_INVALID_TYPE: \\\n"); in WriteOneMachErrorDefine()
413 fprintf(file, "\tcase MACH_SEND_MSG_TOO_SMALL: \\\n"); in WriteOneMachErrorDefine()
414 fprintf(file, "\tcase MACH_SEND_INVALID_RT_OOL_SIZE: \\\n"); in WriteOneMachErrorDefine()
416 fprintf(file, "\tcase MACH_RCV_TIMED_OUT: \\\n"); in WriteOneMachErrorDefine()
417 fprintf(file, "\t\tmig_dealloc_reply_port(InP->Head.msgh_reply_port); \\\n"); in WriteOneMachErrorDefine()
418 fprintf(file, "\t} \\\n}\n"); in WriteOneMachErrorDefine()
419 fprintf(file, "#endif\t/* %s */\n", name); in WriteOneMachErrorDefine()
420 fprintf(file, "\n"); in WriteOneMachErrorDefine()
424 WriteMachErrorDefines(FILE *file) in WriteMachErrorDefines() argument
426 WriteOneMachErrorDefine(file, "__MachMsgErrorWithTimeout", TRUE); in WriteMachErrorDefines()
427 WriteOneMachErrorDefine(file, "__MachMsgErrorWithoutTimeout", FALSE); in WriteMachErrorDefines()
431 WriteMIGCheckDefines(FILE *file) in WriteMIGCheckDefines() argument
433 fprintf(file, "#define\t__MIG_check__Reply__%s_subsystem__ 1\n", SubsystemName); in WriteMIGCheckDefines()
434 fprintf(file, "\n"); in WriteMIGCheckDefines()
438 WriteNDRDefines(FILE *file) in WriteNDRDefines() argument
440 fprintf(file, "#define\t__NDR_convert__Reply__%s_subsystem__ 1\n", SubsystemName); in WriteNDRDefines()
441 fprintf(file, "#define\t__NDR_convert__mig_reply_error_subsystem__ 1\n"); in WriteNDRDefines()
442 fprintf(file, "\n"); in WriteNDRDefines()
450 WriteProlog(FILE *file, statement_t *stats) in WriteProlog() argument
452 WriteIdentificationString(file); in WriteProlog()
453 WriteMIGCheckDefines(file); in WriteProlog()
455 WriteNDRDefines(file); in WriteProlog()
456 WriteMyIncludes(file, stats); in WriteProlog()
457 WriteBogusDefines(file); in WriteProlog()
458 WriteMachErrorDefines(file); in WriteProlog()
459 WriteApplDefaults(file, "Send"); in WriteProlog()
460 WriteGlobalDecls(file); in WriteProlog()
465 WriteEpilog(FILE *file __unused) in WriteEpilog()
479 WriteRequestHead(FILE *file, routine_t *rt) in WriteRequestHead() argument
482 fprintf(file, "ready_to_send:\n"); in WriteRequestHead()
486 fprintf(file, "\tInP = &MessRequest;\n"); in WriteRequestHead()
488 fprintf(file, "\tInP = &Mess%sIn;\n", in WriteRequestHead()
491 fprintf(file, "\tInP->Head.msgh_bits ="); in WriteRequestHead()
493 fprintf(file, " MACH_MSGH_BITS_COMPLEX|"); in WriteRequestHead()
494 fprintf(file, "\n"); in WriteRequestHead()
495 fprintf(file, "\t\tMACH_MSGH_BITS(%s, %s);\n", in WriteRequestHead()
499 fprintf(file, "\tif (!%s)\n", rt->rtRetCArg->argVarName); in WriteRequestHead()
500 fprintf(file, "\t\tInP->Head.msgh_bits |= MACH_MSGH_BITS_COMPLEX;\n"); in WriteRequestHead()
504 fprintf(file, "\t/* msgh_size passed as argument */\n"); in WriteRequestHead()
513 fprintf(file, "\tInP->%s = (mach_port_t) %s;\n", in WriteRequestHead()
518 fprintf(file, "\tInP->%s = %s;\n", in WriteRequestHead()
525 …fprintf(file, "\tInP->%s = (mach_port_t) %s;\n", rt->rtReplyPort->argMsgField, rt->rtReplyPort->ar… in WriteRequestHead()
528 fprintf(file, "\tInP->%s = %s;\n", rt->rtReplyPort->argMsgField, rt->rtReplyPort->argVarName); in WriteRequestHead()
531 fprintf(file, "\tInP->%s = MACH_PORT_NULL;\n", rt->rtReplyPort->argMsgField); in WriteRequestHead()
533 fprintf(file, "\tInP->%s = mig_get_reply_port();\n", rt->rtReplyPort->argMsgField); in WriteRequestHead()
535 fprintf(file, "\tInP->Head.msgh_id = %d;\n", rt->rtNumber + SubsystemBase); in WriteRequestHead()
539 fprintf(file, "\t\n/* BEGIN VOUCHER CODE */\n\n"); in WriteRequestHead()
540 fprintf(file, "#ifdef USING_VOUCHERS\n"); in WriteRequestHead()
541 fprintf(file, "\tif (voucher_mach_msg_set != NULL) {\n"); in WriteRequestHead()
542 fprintf(file, "\t\tvoucher_mach_msg_set(&InP->Head);\n"); in WriteRequestHead()
543 fprintf(file, "\t}\n"); in WriteRequestHead()
544 fprintf(file, "#endif // USING_VOUCHERS\n"); in WriteRequestHead()
545 fprintf(file, "\t\n/* END VOUCHER CODE */\n"); in WriteRequestHead()
554 WriteVarDecls(FILE *file, routine_t *rt) in WriteVarDecls() argument
559 fprintf(file, "\tRequest MessRequest;\n"); in WriteVarDecls()
560 fprintf(file, "\tRequest *InP = &MessRequest;\n\n"); in WriteVarDecls()
562 fprintf(file, "\tunion {\n"); in WriteVarDecls()
563 fprintf(file, "\t\tOverwriteTemplate In;\n"); in WriteVarDecls()
564 fprintf(file, "\t\tReply Out;\n"); in WriteVarDecls()
565 fprintf(file, "\t} MessReply;\n"); in WriteVarDecls()
567 fprintf(file, "\tOverwriteTemplate *InOvTemplate = &MessReply.In;\n"); in WriteVarDecls()
568 fprintf(file, "\tReply *Out0P = &MessReply.Out;\n"); in WriteVarDecls()
570 fprintf(file, "\t" "Reply *Out%dP = NULL;\n", i); in WriteVarDecls()
574 fprintf(file, "\tunion {\n"); in WriteVarDecls()
576 fprintf(file, "\tunion %sMessU {\n", rt->rtName); in WriteVarDecls()
577 fprintf(file, "\t\tRequest In;\n"); in WriteVarDecls()
579 fprintf(file, "\t\tReply Out;\n"); in WriteVarDecls()
581 fprintf(file, "\t} Mess;\n"); in WriteVarDecls()
583 fprintf(file, "\t} *Mess = (union %sMessU *) %s(sizeof(*Mess));\n", in WriteVarDecls()
585 fprintf(file, "\n"); in WriteVarDecls()
587 fprintf(file, "\tRequest *InP = &Mess%sIn;\n", (rtMessOnStack(rt) ? "." : "->")); in WriteVarDecls()
589 fprintf(file, "\tReply *Out0P = &Mess%sOut;\n", (rtMessOnStack(rt) ? "." : "->")); in WriteVarDecls()
591 fprintf(file, "\t" "Reply *Out%dP = NULL;\n", i); in WriteVarDecls()
595 fprintf(file, "\n"); in WriteVarDecls()
597 fprintf(file, "\tmach_msg_return_t msg_result;\n"); in WriteVarDecls()
601 fprintf(file, "\tunsigned int msgh_size;\n"); in WriteVarDecls()
603 fprintf(file, "\tunsigned int msgh_size_delta;\n"); in WriteVarDecls()
605 fprintf(file, "\n"); in WriteVarDecls()
608 fprintf(file, "\tmach_msg_max_trailer_t *TrailerP;\n"); in WriteVarDecls()
609 fprintf(file, "#if\t__MigTypeCheck\n"); in WriteVarDecls()
610 fprintf(file, "\tunsigned int trailer_size;\n"); in WriteVarDecls()
611 fprintf(file, "#endif\t/* __MigTypeCheck */\n"); in WriteVarDecls()
613 fprintf(file, "\n"); in WriteVarDecls()
614 fprintf(file, "#ifdef\t__MIG_check__Reply__%s_t__defined\n", rt->rtName); in WriteVarDecls()
615 fprintf(file, "\tkern_return_t check_result;\n"); in WriteVarDecls()
616 fprintf(file, "#endif\t/* __MIG_check__Reply__%s_t__defined */\n", rt->rtName); in WriteVarDecls()
617 fprintf(file, "\n"); in WriteVarDecls()
618 WriteApplMacro(file, "Send", "Declare", rt); in WriteVarDecls()
619 fprintf(file, "\n"); in WriteVarDecls()
623 WriteReturn(FILE *file, routine_t *rt, const char *before, const char *value, const char *after) in WriteReturn() argument
628 fprintf(file, "%sreturn%s%s;%s", in WriteReturn()
637 fprintf(file, "%sreturn;%s", in WriteReturn()
640 fprintf(file, "%sreturn Out0P->RetCode;%s", in WriteReturn()
643 fprintf(file, "%sreturn %s;%s", in WriteReturn()
649 fprintf(file, "%s{\n%s\t%s ReturnValue;\n", before, before, ReturnTypeStr(rt)); in WriteReturn()
650 fprintf(file, "%s\tReturnValue = Out0P->RetCode;\n%s\t", before, before); in WriteReturn()
653 fprintf(file, "%s{ ", before); in WriteReturn()
656 fprintf(file, "%s((char *) Mess, sizeof(*Mess)); ", MessFreeRoutine); in WriteReturn()
659 fprintf(file, "return ReturnValue;\n%s}%s", before, after); in WriteReturn()
661 fprintf(file, "return; }%s", after); in WriteReturn()
663 fprintf(file, "return %s; }%s", value, after); in WriteReturn()
667 WriteRetCodeArg(FILE *file, register routine_t *rt) in WriteRetCodeArg() argument
672 fprintf(file, "\tif (%s) {\n", arg->argVarName); in WriteRetCodeArg()
673 fprintf(file, "\t\t((mig_reply_error_t *)InP)->RetCode = %s;\n", arg->argVarName); in WriteRetCodeArg()
674 fprintf(file, "\t\t((mig_reply_error_t *)InP)->NDR = NDR_record;\n"); in WriteRetCodeArg()
675 fprintf(file, "\t\tgoto ready_to_send;\n"); in WriteRetCodeArg()
676 fprintf(file, "\t}\n\n"); in WriteRetCodeArg()
685 WriteMsgCheckForTimeout(FILE *file, routine_t *rt) in WriteMsgCheckForTimeout() argument
689 fputs("\n\t" "if (msg_result == MACH_SEND_TIMED_OUT) {" "\n", file); in WriteMsgCheckForTimeout()
698 fprintf(file, "\t\tif((vm_offset_t) InP->%s.address != (vm_offset_t) %s)\n", in WriteMsgCheckForTimeout()
700 fprintf(file, "\t\t\t" "mig_deallocate((vm_offset_t) InP->%s.address, " in WriteMsgCheckForTimeout()
705 fputs("\t" "}" "\n\n", file); in WriteMsgCheckForTimeout()
715 WriteMsgSend(FILE *file, routine_t *rt) in WriteMsgSend() argument
732 fprintf(file, "#if\t__MigKernelSpecificCode\n"); in WriteMsgSend()
733 fprintf(file, "\tmsg_result = mach_msg_send_from_kernel("); in WriteMsgSend()
734 fprintf(file, "&InP->Head, %s);\n", SendSize); in WriteMsgSend()
735 fprintf(file, "#else\n"); in WriteMsgSend()
737 fprintf(file, "\tmsg_result = mach_msg(" in WriteMsgSend()
745 fprintf(file, "#endif /* __MigKernelSpecificCode */\n"); in WriteMsgSend()
747 WriteApplMacro(file, "Send", "After", rt); in WriteMsgSend()
749 WriteMsgCheckForTimeout(file, rt); in WriteMsgSend()
751 WriteReturn(file, rt, "\t", "msg_result", "\n"); in WriteMsgSend()
759 WriteMsgCheckReceive(FILE *file, routine_t *rt, const char *success) in WriteMsgCheckReceive() argument
761 fprintf(file, "\tif (msg_result != %s) {\n", success); in WriteMsgCheckReceive()
768 fprintf(file, in WriteMsgCheckReceive()
772 fprintf(file, "\t\t__MachMsgErrorWithTimeout(msg_result);\n"); in WriteMsgCheckReceive()
774 fprintf(file, "\t\t__MachMsgErrorWithoutTimeout(msg_result);\n"); in WriteMsgCheckReceive()
777 WriteReturnMsgError(file, rt, TRUE, argNULL, "msg_result"); in WriteMsgCheckReceive()
778 fprintf(file, "\t}\n"); in WriteMsgCheckReceive()
789 WriteMsgSendReceive(FILE *file, routine_t *rt) in WriteMsgSendReceive() argument
806 …fprintf(file, "\tmsg_result = mach_msg(&InP->Head, MACH_SEND_MSG|%s%s, %s, 0, ", rt->rtWaitTime !=… in WriteMsgSendReceive()
807 fprintf(file, " MACH_PORT_NULL, %s, MACH_PORT_NULL);\n", in WriteMsgSendReceive()
812 fprintf(file, "\tif (msg_result != MACH_MSG_SUCCESS)\n"); in WriteMsgSendReceive()
813 WriteReturnMsgError(file, rt, TRUE, argNULL, "msg_result"); in WriteMsgSendReceive()
814 fprintf(file, "\n"); in WriteMsgSendReceive()
816 …fprintf(file, "\tmsg_result = mach_msg(&Out0P->Head, MACH_RCV_MSG|%s%s%s, 0, (mach_msg_size_t)size… in WriteMsgSendReceive()
821 WriteApplMacro(file, "Send", "After", rt); in WriteMsgSendReceive()
822 WriteMsgCheckReceive(file, rt, "MACH_MSG_SUCCESS"); in WriteMsgSendReceive()
823 fprintf(file, "\n"); in WriteMsgSendReceive()
832 WriteMsgRPC(FILE *file, routine_t *rt) in WriteMsgRPC() argument
848 fprintf(file, "#if\t(__MigKernelSpecificCode) || (_MIG_KERNELSPECIFIC_CODE_)\n"); in WriteMsgRPC()
849 …fprintf(file, "\tmsg_result = mach_msg_rpc_from_kernel(&InP->Head, %s, (mach_msg_size_t)sizeof(Rep… in WriteMsgRPC()
850 fprintf(file, "#else\n"); in WriteMsgRPC()
853 …fprintf(file, "\tmsg_result = mach_msg_overwrite(&InP->Head, MACH_SEND_MSG|MACH_RCV_MSG|MACH_RCV_O… in WriteMsgRPC()
860 fprintf(file, " &InOvTemplate->Head, (mach_msg_size_t)sizeof(OverwriteTemplate));\n"); in WriteMsgRPC()
863 …fprintf(file, "\tmsg_result = mach_msg(&InP->Head, MACH_SEND_MSG|MACH_RCV_MSG|%s%s%s, %s, (mach_ms… in WriteMsgRPC()
872 fprintf(file,"#endif /* __MigKernelSpecificCode */\n"); in WriteMsgRPC()
873 WriteApplMacro(file, "Send", "After", rt); in WriteMsgRPC()
875 WriteMsgCheckForTimeout(file, rt); in WriteMsgRPC()
877 WriteMsgCheckReceive(file, rt, "MACH_MSG_SUCCESS"); in WriteMsgRPC()
878 fprintf(file, "\n"); in WriteMsgRPC()
885 WriteKPD_port(FILE *file, register argument_t *arg) in WriteKPD_port() argument
896 WriteKPD_Iterator(file, TRUE, FALSE, it->itVarArray, arg, TRUE); in WriteKPD_port()
911 fprintf(file, "#if\tUseStaticTemplates\n"); in WriteKPD_port()
912 fprintf(file, "\t%s = %s;\n", firststring, in WriteKPD_port()
915 fprintf(file, "\t%sname = %s%s%s%s;\n", string, in WriteKPD_port()
920 fprintf(file, "\t%sdisposition = %s%s;\n", string, in WriteKPD_port()
923 fprintf(file, "#else\t/* UseStaticTemplates */\n"); in WriteKPD_port()
924 fprintf(file, "\t%sname = %s%s%s%s;\n", string, in WriteKPD_port()
929 fprintf(file, "\t%sdisposition = %s%s;\n", string, in WriteKPD_port()
932 fprintf(file, "\t%sdisposition = %s;\n", string, in WriteKPD_port()
934 fprintf(file, "\t%stype = MACH_MSG_PORT_DESCRIPTOR;\n", string); in WriteKPD_port()
935 fprintf(file, "#endif\t/* UseStaticTemplates */\n"); in WriteKPD_port()
937 fprintf(file, "\t }\n"); in WriteKPD_port()
939 fprintf(file, "\t for (i = %s; i < %d; ptr++, i++) {\n", in WriteKPD_port()
942 fprintf(file, "#if\tUseStaticTemplates\n"); in WriteKPD_port()
943 fprintf(file, "\t%s = %s;\n", firststring, in WriteKPD_port()
945 fprintf(file, "#else\t/* UseStaticTemplates */\n"); in WriteKPD_port()
946 fprintf(file, "\t%sname = MACH_PORT_NULL;\n", string); in WriteKPD_port()
947 fprintf(file, "\t%stype = MACH_MSG_PORT_DESCRIPTOR;\n", string); in WriteKPD_port()
948 fprintf(file, "#endif\t/* UseStaticTemplates */\n"); in WriteKPD_port()
949 fprintf(file, "\t }\n"); in WriteKPD_port()
951 fprintf(file, "\t}\n"); in WriteKPD_port()
953 fprintf(file, "\n"); in WriteKPD_port()
957 WriteKPD_ool_varsize(FILE *file, argument_t *arg, const char *who, const char *where, boolean_t isc… in WriteKPD_ool_varsize() argument
972 fprintf(file, "\t%s->%s = %s%s%s * %d;\n", who, where, in WriteKPD_ool_varsize()
977 fprintf(file, "\t%s->%s = %s%s%s;\n", who, where, in WriteKPD_ool_varsize()
986 WriteKPD_ool(FILE *file, register argument_t *arg) in WriteKPD_ool() argument
997 WriteKPD_Iterator(file, TRUE, FALSE, it->itVarArray, arg, TRUE); in WriteKPD_ool()
1013 fprintf(file, "#if\tUseStaticTemplates\n"); in WriteKPD_ool()
1015 fprintf(file, "\t%s = %s;\n", firststring, arg->argTTName); in WriteKPD_ool()
1016 fprintf(file, "\t%saddress = (void *)(%s%s%s);\n", in WriteKPD_ool()
1020 WriteKPD_ool_varsize(file, arg, "\tptr", "size", TRUE); in WriteKPD_ool()
1022 WriteKPD_ool_varsize(file, arg, "InP", in WriteKPD_ool()
1026 fprintf(file, "\t%sdeallocate = %s;\n", in WriteKPD_ool()
1029 fprintf(file, "#else\t/* UseStaticTemplates */\n"); in WriteKPD_ool()
1031 fprintf(file, "\t%saddress = (void *)(%s%s%s);\n", in WriteKPD_ool()
1035 WriteKPD_ool_varsize(file, arg, "\tptr", "size", TRUE); in WriteKPD_ool()
1037 WriteKPD_ool_varsize(file, arg, "InP", in WriteKPD_ool()
1040 fprintf(file, "\t%ssize = %d;\n", string, in WriteKPD_ool()
1043 fprintf(file, "\t%sdeallocate = %s;\n", string, in WriteKPD_ool()
1046 fprintf(file, "\t%sdeallocate = %s;\n", string, in WriteKPD_ool()
1048 fprintf(file, "\t%scopy = %s;\n", string, in WriteKPD_ool()
1051 fprintf(file, "\t%salignment = MACH_MSG_ALIGN_%d;\n", string, in WriteKPD_ool()
1054 fprintf(file, "\t%stype = MACH_MSG_OOL_DESCRIPTOR;\n", string); in WriteKPD_ool()
1056 fprintf(file, "#endif\t/* UseStaticTemplates */\n"); in WriteKPD_ool()
1058 fprintf(file, "\t }\n"); in WriteKPD_ool()
1060 fprintf(file, "\t for (i = %s; i < %d; ptr++, i++) {\n", in WriteKPD_ool()
1063 fprintf(file, "#if\tUseStaticTemplates\n"); in WriteKPD_ool()
1064 fprintf(file, "\t%s = %s;\n", firststring, arg->argTTName); in WriteKPD_ool()
1066 fprintf(file, "\t%ssize = 0;\n", string); in WriteKPD_ool()
1068 fprintf(file, "#else\t/* UseStaticTemplates */\n"); in WriteKPD_ool()
1069 fprintf(file, "\t%ssize = 0;\n", string); in WriteKPD_ool()
1070 fprintf(file, "\t%stype = MACH_MSG_OOL_DESCRIPTOR;\n", string); in WriteKPD_ool()
1071 fprintf(file, "#endif\t/* UseStaticTemplates */\n"); in WriteKPD_ool()
1072 fprintf(file, "\t }\n"); in WriteKPD_ool()
1074 fprintf(file, "\t}\n"); in WriteKPD_ool()
1076 fprintf(file, "\n"); in WriteKPD_ool()
1083 WriteKPD_oolport(FILE *file, register argument_t *arg) in WriteKPD_oolport() argument
1096 WriteKPD_Iterator(file, TRUE, FALSE, it->itVarArray, arg, TRUE); in WriteKPD_oolport()
1114 fprintf(file, "#if\tUseStaticTemplates\n"); in WriteKPD_oolport()
1116 fprintf(file, "\t%s = %s;\n", firststring, arg->argTTName); in WriteKPD_oolport()
1117 fprintf(file, "\t%saddress = (void *)(%s%s%s);\n", string, in WriteKPD_oolport()
1120 fprintf(file, "\t%scount = %s%s%s;\n", string, in WriteKPD_oolport()
1127 fprintf(file, "\t%sdisposition = %s%s;\n", string, in WriteKPD_oolport()
1131 fprintf(file, "\t%sdeallocate = %s;\n", string, in WriteKPD_oolport()
1134 fprintf(file, "#else\t/* UseStaticTemplates */\n"); in WriteKPD_oolport()
1136 fprintf(file, "\t%saddress = (void *)(%s%s%s);\n", in WriteKPD_oolport()
1139 fprintf(file, "\t%scount = %s%s%s;\n", string, in WriteKPD_oolport()
1143 fprintf(file, "\t%scount = %d;\n", string, in WriteKPD_oolport()
1149 fprintf(file, "\t%sdisposition = %s%s;\n", in WriteKPD_oolport()
1152 fprintf(file, "\t%sdisposition = %s;\n", in WriteKPD_oolport()
1155 fprintf(file, "\t%sdeallocate = %s;\n", string, in WriteKPD_oolport()
1158 fprintf(file, "\t%sdeallocate = %s;\n", string, in WriteKPD_oolport()
1160 fprintf(file, "\t%stype = MACH_MSG_OOL_PORTS_DESCRIPTOR;\n", string); in WriteKPD_oolport()
1162 fprintf(file, "#endif\t/* UseStaticTemplates */\n"); in WriteKPD_oolport()
1163 fprintf(file, "\n"); in WriteKPD_oolport()
1166 fprintf(file, "\t }\n"); in WriteKPD_oolport()
1168 fprintf(file, "\t for (i = %s; i < %d; ptr++, i++) {\n", in WriteKPD_oolport()
1171 fprintf(file, "#if\tUseStaticTemplates\n"); in WriteKPD_oolport()
1172 fprintf(file, "\t%s = %s;\n", firststring, arg->argTTName); in WriteKPD_oolport()
1174 fprintf(file, "\t%scount = 0;\n", string); in WriteKPD_oolport()
1176 fprintf(file, "#else\t/* UseStaticTemplates */\n"); in WriteKPD_oolport()
1177 fprintf(file, "\t%scount = 0;\n", string); in WriteKPD_oolport()
1178 fprintf(file, "\t%stype = MACH_MSG_OOL_PORTS_DESCRIPTOR;\n", string); in WriteKPD_oolport()
1179 fprintf(file, "#endif\t/* UseStaticTemplates */\n"); in WriteKPD_oolport()
1180 fprintf(file, "\t }\n"); in WriteKPD_oolport()
1182 fprintf(file, "\t}\n"); in WriteKPD_oolport()
1184 fprintf(file, "\n"); in WriteKPD_oolport()
1188 WriteOverwriteTemplate(FILE *file, routine_t *rt) in WriteOverwriteTemplate() argument
1195 fprintf(file, "\t/* Initialize the template for overwrite */\n"); in WriteOverwriteTemplate()
1196 fprintf(file, "\tInOvTemplate->msgh_body.msgh_descriptor_count = %d;\n", in WriteOverwriteTemplate()
1209 WriteKPD_Iterator(file, FALSE, TRUE, it->itVarArray, arg, TRUE); in WriteOverwriteTemplate()
1227 fprintf(file, "\t%saddress = (void *) %s%s%s;\n", string, in WriteOverwriteTemplate()
1231 fprintf(file, "\t%scount = ", string); in WriteOverwriteTemplate()
1234 fprintf(file, "%s%s%s;\n", cref, count->argVarName, subindex); in WriteOverwriteTemplate()
1236 fprintf(file, "%d;\n", howmany); in WriteOverwriteTemplate()
1238 fprintf(file, "\t%ssize = ", string); in WriteOverwriteTemplate()
1242 fprintf(file, "%s%s%s * %d;\n", cref, count->argVarName, subindex, in WriteOverwriteTemplate()
1245 fprintf(file, "%s%s%s;\n", cref, count->argVarName, subindex); in WriteOverwriteTemplate()
1248 fprintf(file, "\t%ssize = %d;\n", string, (howmany * howbig + 7)/8); in WriteOverwriteTemplate()
1250 fprintf(file, "\t%scopy = MACH_MSG_OVERWRITE;\n", string); in WriteOverwriteTemplate()
1251 fprintf(file, "\t%stype = MACH_MSG_OOL_%sDESCRIPTOR;\n", string, in WriteOverwriteTemplate()
1254 fprintf(file, "\t }\n"); in WriteOverwriteTemplate()
1256 fprintf(file, "\t for (i = %s%s; i < %d; ptr++, i++) {\n", in WriteOverwriteTemplate()
1259 fprintf(file, "\t\tptr->copy = MACH_MSG_ALLOCATE;\n"); in WriteOverwriteTemplate()
1260 fprintf(file, "\t\tptr->type = MACH_MSG_OOL_%sDESCRIPTOR;\n", in WriteOverwriteTemplate()
1262 fprintf(file, "\t }\n"); in WriteOverwriteTemplate()
1265 fprintf(file, "\t}\n"); in WriteOverwriteTemplate()
1269 WriteKPD_Iterator(file, FALSE, TRUE, FALSE, arg, TRUE); in WriteOverwriteTemplate()
1270 fprintf(file, "\t\tptr->copy = MACH_MSG_ALLOCATE;\n"); in WriteOverwriteTemplate()
1271 fprintf(file, "\t\tptr->type = MACH_MSG_OOL_%sDESCRIPTOR;\n", in WriteOverwriteTemplate()
1273 fprintf(file, "\t }\n\t}\n"); in WriteOverwriteTemplate()
1276 fprintf(file, "\tInOvTemplate->%s.copy = MACH_MSG_ALLOCATE;\n", arg->argMsgField); in WriteOverwriteTemplate()
1278 fprintf(file, "\tInOvTemplate->%s.type = MACH_MSG_OOL_%sDESCRIPTOR;\n", in WriteOverwriteTemplate()
1284 fprintf(file, "\n"); in WriteOverwriteTemplate()
1294 WritePackArgValueNormal(FILE *file, register argument_t *arg) in WritePackArgValueNormal() argument
1307 fprintf(file, in WritePackArgValueNormal()
1314 fprintf(file, "\t(void)memcpy((char *) InP->%s, (const char *) %s%s, %d);\n", in WritePackArgValueNormal()
1331 fprintf(file, "\tif (%s%s > %d) {\n", in WritePackArgValueNormal()
1334 WriteReturnMsgError(file, arg->argRoutine, TRUE, arg, "MIG_ARRAY_TOO_LARGE"); in WritePackArgValueNormal()
1335 fprintf(file, "\t}\n"); in WritePackArgValueNormal()
1338 fprintf(file, "\t(void)memcpy((char *) InP->%s, (const char *) %s%s, ", in WritePackArgValueNormal()
1341 fprintf(file, "%d * ", btype->itTypeSize); in WritePackArgValueNormal()
1342 fprintf(file, "%s%s);\n", countRef, count->argVarName); in WritePackArgValueNormal()
1346 fprintf(file, "\tif ((InP->__Present__%s = (%s != %s))) {\n", in WritePackArgValueNormal()
1348 WriteCopyType(file, it, "\tInP->%s.__Real__%s", "/* %s%s */ %s%s", in WritePackArgValueNormal()
1351 fprintf(file, "\t}\n"); in WritePackArgValueNormal()
1354 WriteCopyType(file, it, "InP->%s", "/* %s */ %s%s", in WritePackArgValueNormal()
1356 fprintf(file, "\n"); in WritePackArgValueNormal()
1363 WriteArgSizeVariable(FILE *file, register argument_t *arg, ipc_type_t *ptype) in WriteArgSizeVariable() argument
1369 fprintf(file, "%d", ptype->itTypeSize + ptype->itPadSize); in WriteArgSizeVariable()
1376 fprintf(file, "_WALIGN_"); in WriteArgSizeVariable()
1377 fprintf(file, "("); in WriteArgSizeVariable()
1379 fprintf(file, "%d * ", bsize); in WriteArgSizeVariable()
1382 fprintf(file, "InP->%s", count->argMsgField); in WriteArgSizeVariable()
1385 fprintf(file, "%s%s", in WriteArgSizeVariable()
1388 fprintf(file, ")"); in WriteArgSizeVariable()
1392 WriteArgSizeOptional(FILE *file, argument_t *arg, ipc_type_t *ptype) in WriteArgSizeOptional() argument
1395 fprintf(file, "(InP->__Present__%s ? _WALIGNSZ_(%s) : 0)", in WriteArgSizeOptional()
1400 WriteArgSize(FILE *file, argument_t *arg) in WriteArgSize() argument
1406 WriteArgSizeOptional(file, arg, ptype); in WriteArgSize()
1408 WriteArgSizeVariable(file, arg, ptype); in WriteArgSize()
1417 WriteAdjustMsgSize(FILE *file, register argument_t *arg) in WriteAdjustMsgSize() argument
1425 fprintf(file, "\tmsgh_size_delta = "); in WriteAdjustMsgSize()
1426 WriteArgSize(file, arg); in WriteAdjustMsgSize()
1427 fprintf(file, ";\n"); in WriteAdjustMsgSize()
1433 fprintf(file, "\tmsgh_size = "); in WriteAdjustMsgSize()
1434 rtMinRequestSize(file, arg->argRoutine, "Request"); in WriteAdjustMsgSize()
1435 fprintf(file, " + msgh_size_delta;\n"); in WriteAdjustMsgSize()
1437 fprintf(file, "\tmsgh_size += msgh_size_delta;\n"); in WriteAdjustMsgSize()
1440 fprintf(file, in WriteAdjustMsgSize()
1443 fprintf(file, in WriteAdjustMsgSize()
1447 fprintf(file, in WriteAdjustMsgSize()
1450 fprintf(file, in WriteAdjustMsgSize()
1460 WriteFinishMsgSize(FILE *file, register argument_t *arg) in WriteFinishMsgSize() argument
1467 fprintf(file, "\tmsgh_size = "); in WriteFinishMsgSize()
1468 rtMinRequestSize(file, arg->argRoutine, "Request"); in WriteFinishMsgSize()
1469 fprintf(file, " + ("); in WriteFinishMsgSize()
1470 WriteArgSize(file, arg); in WriteFinishMsgSize()
1471 fprintf(file, ");\n"); in WriteFinishMsgSize()
1474 fprintf(file, "\tmsgh_size += "); in WriteFinishMsgSize()
1475 WriteArgSize(file, arg); in WriteFinishMsgSize()
1476 fprintf(file, ";\n"); in WriteFinishMsgSize()
1481 WriteInitializeCount(FILE *file, register argument_t *arg) in WriteInitializeCount() argument
1486 fprintf(file, "\tif (%s%s < %d)\n", in WriteInitializeCount()
1490 fprintf(file, "\t\tInP->%s = %s%s;\n", in WriteInitializeCount()
1494 fprintf(file, "\telse\n"); in WriteInitializeCount()
1495 fprintf(file, "\t\tInP->%s = %d;\n", in WriteInitializeCount()
1497 fprintf(file, "\n"); in WriteInitializeCount()
1505 WriteRequestArgs(FILE *file, register routine_t *rt) in WriteRequestArgs() argument
1515 (*arg->argKPD_Pack)(file, arg); in WriteRequestArgs()
1530 WriteAdjustMsgSize(file, lastVarArg); in WriteRequestArgs()
1536 WriteInitializeCount(file, arg); in WriteRequestArgs()
1538 WritePackArgValueNormal(file, arg); in WriteRequestArgs()
1549 WriteFinishMsgSize(file, lastVarArg); in WriteRequestArgs()
1558 WriteCheckIdentity(FILE *file, routine_t *rt) in WriteCheckIdentity() argument
1560 fprintf(file, "\tif (Out0P->Head.msgh_id != %d) {\n", in WriteCheckIdentity()
1562 fprintf(file, "\t if (Out0P->Head.msgh_id == MACH_NOTIFY_SEND_ONCE)\n"); in WriteCheckIdentity()
1563 fprintf(file, "\t\t{ return MIG_SERVER_DIED; }\n"); in WriteCheckIdentity()
1564 fprintf(file, "\t else\n"); in WriteCheckIdentity()
1565 fprintf(file, "\t\t{ return MIG_REPLY_MISMATCH; }\n"); in WriteCheckIdentity()
1566 fprintf(file, "\t}\n"); in WriteCheckIdentity()
1567 fprintf(file, "\n"); in WriteCheckIdentity()
1569 fprintf(file, "\tmsgh_simple = !(Out0P->Head.msgh_bits & MACH_MSGH_BITS_COMPLEX);\n"); in WriteCheckIdentity()
1570 fprintf(file, "#if\t__MigTypeCheck\n"); in WriteCheckIdentity()
1573 fprintf(file, "\tmsgh_size = Out0P->Head.msgh_size;\n\n"); in WriteCheckIdentity()
1580 fprintf(file, in WriteCheckIdentity()
1583 fprintf(file, "\t (Out0P->Head.msgh_size != sizeof(__Reply)))\n"); in WriteCheckIdentity()
1592 fprintf(file, "\t ((msgh_size > sizeof(__Reply) || msgh_size < "); in WriteCheckIdentity()
1593 rtMinReplySize(file, rt, "__Reply"); in WriteCheckIdentity()
1594 fprintf(file, ") &&\n"); in WriteCheckIdentity()
1596 fprintf(file, "\t ((msgh_size != sizeof(__Reply)) &&\n"); in WriteCheckIdentity()
1597 fprintf(file, "\t (msgh_size != sizeof(mig_reply_error_t) ||\n"); in WriteCheckIdentity()
1598 fprintf(file, "\t Out0P->RetCode == KERN_SUCCESS)))\n"); in WriteCheckIdentity()
1604 fprintf(file, "\tif ((msgh_simple || Out0P->msgh_body.msgh_descriptor_count != %d ||\n", in WriteCheckIdentity()
1607 fprintf(file, "\t msgh_size < "); in WriteCheckIdentity()
1608 rtMinReplySize(file, rt, "__Reply"); in WriteCheckIdentity()
1609 fprintf(file, " || msgh_size > sizeof(__Reply)) &&\n"); in WriteCheckIdentity()
1611 fprintf(file, "\t msgh_size != sizeof(__Reply)) &&\n"); in WriteCheckIdentity()
1612 fprintf(file, "\t (!msgh_simple || msgh_size != sizeof(mig_reply_error_t) ||\n"); in WriteCheckIdentity()
1613 fprintf(file, "\t ((mig_reply_error_t *)Out0P)->RetCode == KERN_SUCCESS))\n"); in WriteCheckIdentity()
1615 fprintf(file, "\t\t{ return MIG_TYPE_ERROR ; }\n"); in WriteCheckIdentity()
1616 fprintf(file, "#endif\t/* __MigTypeCheck */\n"); in WriteCheckIdentity()
1617 fprintf(file, "\n"); in WriteCheckIdentity()
1625 WriteRetCodeCheck(FILE *file, routine_t *rt) in WriteRetCodeCheck() argument
1628 fprintf(file, "\tif (Out0P->RetCode != KERN_SUCCESS) {\n"); in WriteRetCodeCheck()
1630 fprintf(file, "\tif (msgh_simple) {\n"); in WriteRetCodeCheck()
1632 fprintf(file, "#ifdef\t__NDR_convert__mig_reply_error_t__defined\n"); in WriteRetCodeCheck()
1633 fprintf(file, "\t\t__NDR_convert__mig_reply_error_t((mig_reply_error_t *)Out0P);\n"); in WriteRetCodeCheck()
1634 fprintf(file, "#endif\t/* __NDR_convert__mig_reply_error_t__defined */\n"); in WriteRetCodeCheck()
1636 fprintf(file, "\t\treturn ((mig_reply_error_t *)Out0P)->RetCode;\n"); in WriteRetCodeCheck()
1637 fprintf(file, "\t}\n"); in WriteRetCodeCheck()
1638 fprintf(file, "\n"); in WriteRetCodeCheck()
1645 WriteTCheckKPD_port(FILE *file, register argument_t *arg) in WriteTCheckKPD_port() argument
1653 WriteKPD_Iterator(file, FALSE, FALSE, FALSE, arg, TRUE); in WriteTCheckKPD_port()
1659 fprintf(file, "\t%sif (%stype != MACH_MSG_PORT_DESCRIPTOR", in WriteTCheckKPD_port()
1664 fprintf(file, " ||\n\t%s %sdisposition != %s", tab, string, it->itOutNameStr); in WriteTCheckKPD_port()
1665 fprintf(file, in WriteTCheckKPD_port()
1671 fprintf(file, "\t }\n\t}\n"); in WriteTCheckKPD_port()
1678 WriteTCheckKPD_ool(FILE *file, register argument_t *arg) in WriteTCheckKPD_ool() argument
1687 WriteKPD_Iterator(file, FALSE, FALSE, FALSE, arg, TRUE); in WriteTCheckKPD_ool()
1701 fprintf(file, "\t%sif (%stype != MACH_MSG_OOL_DESCRIPTOR", tab, string); in WriteTCheckKPD_ool()
1704 fprintf(file, " ||\n\t%s %ssize != %d", tab, string, (howmany * howbig + 7)/8); in WriteTCheckKPD_ool()
1705 fprintf(file, in WriteTCheckKPD_ool()
1711 fprintf(file, "\t }\n\t}\n"); in WriteTCheckKPD_ool()
1718 WriteTCheckKPD_oolport(FILE *file, register argument_t *arg) in WriteTCheckKPD_oolport() argument
1728 WriteKPD_Iterator(file, FALSE, FALSE, FALSE, arg, TRUE); in WriteTCheckKPD_oolport()
1742 fprintf(file, "\t%sif (%stype != MACH_MSG_OOL_PORTS_DESCRIPTOR", tab, string); in WriteTCheckKPD_oolport()
1745 fprintf(file, " ||\n\t%s %scount != %d", tab, string, howmany); in WriteTCheckKPD_oolport()
1747 fprintf(file, " ||\n\t%s %sdisposition != %s", tab, string, howstr); in WriteTCheckKPD_oolport()
1748 fprintf(file, ") {\n" in WriteTCheckKPD_oolport()
1753 fprintf(file, "\t }\n\t}\n"); in WriteTCheckKPD_oolport()
1762 WriteTypeCheck(FILE *file, register argument_t *arg) in WriteTypeCheck() argument
1764 fprintf(file, "#if\t__MigTypeCheck\n"); in WriteTypeCheck()
1765 (*arg->argKPD_TypeCheck)(file, arg); in WriteTypeCheck()
1766 fprintf(file, "#endif\t/* __MigTypeCheck */\n"); in WriteTypeCheck()
1774 WriteExtractKPD_port(FILE *file, register argument_t *arg) in WriteExtractKPD_port() argument
1788 WriteKPD_Iterator(file, FALSE, FALSE, it->itVarArray, arg, FALSE); in WriteExtractKPD_port()
1790 fprintf(file, "\t\t%s[i] = %sptr->name;\n", in WriteExtractKPD_port()
1796 fprintf(file, "\t if (Out%dP->%s > %s%s)\n", count->argReplyPos, in WriteExtractKPD_port()
1798 WriteReturnMsgError(file, arg->argRoutine, TRUE, arg, "MIG_ARRAY_TOO_LARGE"); in WriteExtractKPD_port()
1800 fprintf(file, "\t}\n"); in WriteExtractKPD_port()
1804 …fprintf(file, "\t%s%s = %sOut%dP->%s.name;\n", ref, arg->argVarName, recast, arg->argReplyPos, arg… in WriteExtractKPD_port()
1812 fprintf(file, "\t%s%s = Out%dP->%s%s.disposition;\n", in WriteExtractKPD_port()
1821 WriteExtractKPD_ool(FILE *file, register argument_t *arg) in WriteExtractKPD_ool() argument
1827 WriteKPD_Iterator(file, FALSE, FALSE, it->itVarArray, arg, FALSE); in WriteExtractKPD_ool()
1828 fprintf(file, "\t\t%s[i] = ptr->address;\n", in WriteExtractKPD_ool()
1830 fprintf(file, "\t}\n"); in WriteExtractKPD_ool()
1832 fprintf(file, "\t%s%s = (%s)(Out%dP->%s.address);\n", in WriteExtractKPD_ool()
1846 WriteExtractKPD_oolport(FILE *file, register argument_t *arg) in WriteExtractKPD_oolport() argument
1853 WriteKPD_Iterator(file, FALSE, FALSE, it->itVarArray, arg, FALSE); in WriteExtractKPD_oolport()
1854 fprintf(file, "\t\t%s[i] = ptr->address;\n", in WriteExtractKPD_oolport()
1856 fprintf(file, "\t}\n"); in WriteExtractKPD_oolport()
1860 …fprintf(file, "\t%s%s = (%s)(Out%dP->%s.address);\n", ref, arg->argVarName, arg->argType->itUserTy… in WriteExtractKPD_oolport()
1872 fprintf(file, "\t%s%s = Out%dP->%s%s.disposition;\n", in WriteExtractKPD_oolport()
1884 WriteExtractArgValueNormal(FILE *file, register argument_t *arg) in WriteExtractArgValueNormal() argument
1900 fprintf(file, "\t(void) mig_strncpy(%s%s, %s->%s, %d);\n", in WriteExtractArgValueNormal()
1908 fprintf(file, "\t(void)memcpy((char *) %s%s, (const char *) %s->%s, %d);\n", in WriteExtractArgValueNormal()
1923 fprintf(file, "\tif (Out%dP->%s", count->argReplyPos, count->argMsgField); in WriteExtractArgValueNormal()
1925 fprintf(file, " > %s%s) {\n", countRef, count->argVarName); in WriteExtractArgValueNormal()
1928 fprintf(file, " > %d) {\n", argType->itNumber/btype->itNumber); in WriteExtractArgValueNormal()
1936 fprintf(file, "\t\t(void)memcpy((char *) %s%s, (const char *) Out%dP->%s, ", in WriteExtractArgValueNormal()
1939 fprintf(file, "%d * ", btype->itTypeSize); in WriteExtractArgValueNormal()
1941 fprintf(file, " %s%s);\n", countRef, count->argVarName); in WriteExtractArgValueNormal()
1944 fprintf(file, " %d);\n", argType->itNumber/btype->itNumber); in WriteExtractArgValueNormal()
1946 …fprintf(file, "\t\t%s%s = Out%dP->%s", countRef, count->argVarName, count->argReplyPos, count->arg… in WriteExtractArgValueNormal()
1947 fprintf(file, ";\n"); in WriteExtractArgValueNormal()
1948 WriteReturnMsgError(file, arg->argRoutine, TRUE, arg, "MIG_ARRAY_TOO_LARGE"); in WriteExtractArgValueNormal()
1950 fprintf(file, "\t}\n"); in WriteExtractArgValueNormal()
1952 fprintf(file, "\t(void)memcpy((char *) %s%s, (const char *) Out%dP->%s, ", in WriteExtractArgValueNormal()
1955 fprintf(file, "%d * ", in WriteExtractArgValueNormal()
1957 fprintf(file, "Out%dP->%s);\n", in WriteExtractArgValueNormal()
1962 WriteCopyType(file, argType, in WriteExtractArgValueNormal()
1965 fprintf(file, "\n"); in WriteExtractArgValueNormal()
1969 WriteCalcArgSize(FILE *file, register argument_t *arg) in WriteCalcArgSize() argument
1979 fprintf(file, "_WALIGN_("); in WriteCalcArgSize()
1981 fprintf(file, "Out%dP->%s", count->argReplyPos, count->argMsgField); in WriteCalcArgSize()
1983 fprintf(file, " * %d", multiplier); in WriteCalcArgSize()
1986 fprintf(file, ")"); in WriteCalcArgSize()
1990 WriteCheckArgSize(FILE *file, routine_t *rt, argument_t *arg, const char *comparator) in WriteCheckArgSize() argument
1997 fprintf(file, "\tif (((msgh_size - "); in WriteCheckArgSize()
1998 rtMinReplySize(file, rt, "__Reply"); in WriteCheckArgSize()
1999 fprintf(file, ")"); in WriteCheckArgSize()
2001 fprintf(file, " / %d", multiplier); in WriteCheckArgSize()
2002 fprintf(file, "< Out%dP->%s) ||\n", count->argReplyPos, count->argMsgField); in WriteCheckArgSize()
2003 fprintf(file, "\t (msgh_size %s ", comparator); in WriteCheckArgSize()
2004 rtMinReplySize(file, rt, "__Reply"); in WriteCheckArgSize()
2005 fprintf(file, " + "); in WriteCheckArgSize()
2006 WriteCalcArgSize(file, arg); in WriteCheckArgSize()
2007 fprintf(file, ")"); in WriteCheckArgSize()
2008 fprintf(file, ")\n\t\t{ return MIG_TYPE_ERROR ; }\n"); in WriteCheckArgSize()
2016 WriteReplyNDRConvertIntRepArgCond(FILE *file, argument_t *arg) in WriteReplyNDRConvertIntRepArgCond() argument
2020 …fprintf(file, "defined(__NDR_convert__int_rep__Reply__%s_t__%s__defined)", rt->rtName, arg->argMsg… in WriteReplyNDRConvertIntRepArgCond()
2024 WriteReplyNDRConvertCharRepArgCond(FILE *file, argument_t *arg) in WriteReplyNDRConvertCharRepArgCond() argument
2029 …fprintf(file, "defined(__NDR_convert__char_rep__Reply__%s_t__%s__defined)", rt->rtName, arg->argMs… in WriteReplyNDRConvertCharRepArgCond()
2031 fprintf(file, "0"); in WriteReplyNDRConvertCharRepArgCond()
2035 WriteReplyNDRConvertFloatRepArgCond(FILE *file, argument_t *arg) in WriteReplyNDRConvertFloatRepArgCond() argument
2040 …fprintf(file, "defined(__NDR_convert__float_rep__Reply__%s_t__%s__defined)", rt->rtName, arg->argM… in WriteReplyNDRConvertFloatRepArgCond()
2042 fprintf(file, "0"); in WriteReplyNDRConvertFloatRepArgCond()
2046 WriteReplyNDRConvertIntRepArgDecl(FILE *file, argument_t *arg) in WriteReplyNDRConvertIntRepArgDecl() argument
2048 WriteNDRConvertArgDecl(file, arg, "int_rep", "Reply"); in WriteReplyNDRConvertIntRepArgDecl()
2052 WriteReplyNDRConvertCharRepArgDecl(FILE *file, argument_t *arg) in WriteReplyNDRConvertCharRepArgDecl() argument
2055 WriteNDRConvertArgDecl(file, arg, "char_rep", "Reply"); in WriteReplyNDRConvertCharRepArgDecl()
2059 WriteReplyNDRConvertFloatRepArgDecl(FILE *file, argument_t *arg) in WriteReplyNDRConvertFloatRepArgDecl() argument
2062 WriteNDRConvertArgDecl(file, arg, "float_rep", "Reply"); in WriteReplyNDRConvertFloatRepArgDecl()
2068 WriteReplyNDRConvertArgUse(FILE *file, argument_t *arg, const char *convert) in WriteReplyNDRConvertArgUse() argument
2080 …fprintf(file, "#if defined(__NDR_convert__int_rep__Reply__%s_t__%s__defined)\n", rt->rtName, count… in WriteReplyNDRConvertArgUse()
2081 …fprintf(file, "\t\t__NDR_convert__int_rep__Reply__%s_t__%s(&Out%dP->%s, Out%dP->NDR.int_rep);\n", … in WriteReplyNDRConvertArgUse()
2082 …fprintf(file, "#endif\t/* __NDR_convert__int_rep__Reply__%s_t__%s__defined */\n", rt->rtName, coun… in WriteReplyNDRConvertArgUse()
2091 …fprintf(file, "#if defined(__NDR_convert__%s__Reply__%s_t__%s__defined)\n", convert, rt->rtName, a… in WriteReplyNDRConvertArgUse()
2092 …fprintf(file, "\t\t__NDR_convert__%s__Reply__%s_t__%s(%s, Out0P->NDR.%s", convert, rt->rtName, arg… in WriteReplyNDRConvertArgUse()
2094 fprintf(file, ", Out%dP->%s", count->argReplyPos, count->argMsgField); in WriteReplyNDRConvertArgUse()
2095 fprintf(file, ");\n"); in WriteReplyNDRConvertArgUse()
2096 …fprintf(file, "#endif /* __NDR_convert__%s__Reply__%s_t__%s__defined */\n", convert, rt->rtName, a… in WriteReplyNDRConvertArgUse()
2100 WriteReplyNDRConvertIntRepOneArgUse(FILE *file, argument_t *arg) in WriteReplyNDRConvertIntRepOneArgUse() argument
2104 …fprintf(file, "#if defined(__NDR_convert__int_rep__Reply__%s_t__%s__defined)\n", rt->rtName, arg->… in WriteReplyNDRConvertIntRepOneArgUse()
2105 fprintf(file, "\tif (Out0P->NDR.int_rep != NDR_record.int_rep)\n"); in WriteReplyNDRConvertIntRepOneArgUse()
2106 …fprintf(file, "\t\t__NDR_convert__int_rep__Reply__%s_t__%s(&Out%dP->%s, Out%dP->NDR.int_rep);\n", … in WriteReplyNDRConvertIntRepOneArgUse()
2107 …fprintf(file, "#endif\t/* __NDR_convert__int_rep__Reply__%s_t__%s__defined */\n", rt->rtName, arg-… in WriteReplyNDRConvertIntRepOneArgUse()
2111 WriteReplyNDRConvertIntRepArgUse(FILE *file, argument_t *arg) in WriteReplyNDRConvertIntRepArgUse() argument
2113 WriteReplyNDRConvertArgUse(file, arg, "int_rep"); in WriteReplyNDRConvertIntRepArgUse()
2117 WriteReplyNDRConvertCharRepArgUse(FILE *file, argument_t *arg) in WriteReplyNDRConvertCharRepArgUse() argument
2120 WriteReplyNDRConvertArgUse(file, arg, "char_rep"); in WriteReplyNDRConvertCharRepArgUse()
2124 WriteReplyNDRConvertFloatRepArgUse(FILE *file, argument_t *arg) in WriteReplyNDRConvertFloatRepArgUse() argument
2127 WriteReplyNDRConvertArgUse(file, arg, "float_rep"); in WriteReplyNDRConvertFloatRepArgUse()
2131 WriteCheckMsgSize(FILE *file, register argument_t *arg) in WriteCheckMsgSize() argument
2140 WriteReplyNDRConvertIntRepOneArgUse(file, arg->argCount); in WriteCheckMsgSize()
2143 fprintf(file, "#if\t__MigTypeCheck\n"); in WriteCheckMsgSize()
2148 …fprintf(file, "\t" "if ( Out%dP->%s > %d )\n", arg->argCount->argReplyPos, arg->argCount->argMsgFi… in WriteCheckMsgSize()
2149 fputs("\t\t" "return MIG_TYPE_ERROR;\n", file); in WriteCheckMsgSize()
2152 WriteCheckArgSize(file, rt, arg, "!="); in WriteCheckMsgSize()
2154 fprintf(file, "#endif\t/* __MigTypeCheck */\n"); in WriteCheckMsgSize()
2169 fprintf(file, "\tmsgh_size_delta = "); in WriteCheckMsgSize()
2170 WriteCalcArgSize(file, arg); in WriteCheckMsgSize()
2171 fprintf(file, ";\n"); in WriteCheckMsgSize()
2172 fprintf(file, "#if\t__MigTypeCheck\n"); in WriteCheckMsgSize()
2178 …fprintf(file, "\t" "if ( Out%dP->%s > %d )\n", arg->argCount->argReplyPos, arg->argCount->argMsgFi… in WriteCheckMsgSize()
2179 fputs("\t\t" "return MIG_TYPE_ERROR;\n", file); in WriteCheckMsgSize()
2182 WriteCheckArgSize(file, rt, arg, LastVarArg ? "!=" : "<"); in WriteCheckMsgSize()
2185 fprintf(file, "\tmsgh_size -= msgh_size_delta;\n"); in WriteCheckMsgSize()
2187 fprintf(file, "#endif\t/* __MigTypeCheck */\n"); in WriteCheckMsgSize()
2189 fprintf(file, "\n"); in WriteCheckMsgSize()
2193 WriteAdjustReplyMsgPtr(FILE *file, register argument_t *arg) in WriteAdjustReplyMsgPtr() argument
2197 fprintf(file, "\t*Out%dPP = Out%dP = (__Reply *) ((pointer_t) Out%dP + msgh_size_delta - %d);\n\n", in WriteAdjustReplyMsgPtr()
2202 WriteReplyArgs(FILE *file, register routine_t *rt) in WriteReplyArgs() argument
2208 WriteExtractArgValueNormal(file, arg); in WriteReplyArgs()
2214 (*arg->argKPD_Extract)(file, arg); in WriteReplyArgs()
2217 WriteExtractArgValueNormal(file, arg); in WriteReplyArgs()
2227 WriteReturnValue(FILE *file, routine_t *rt) in WriteReturnValue() argument
2230 WriteReturn(file, rt, "\t", "KERN_SUCCESS", "\n"); in WriteReturnValue()
2241 WriteFieldDecl(FILE *file, argument_t *arg) in WriteFieldDecl() argument
2245 WriteFieldDeclPrim(file, arg, FetchKPDType); in WriteFieldDecl()
2247 WriteFieldDeclPrim(file, arg, FetchUserType); in WriteFieldDecl()
2270 WriteRPCPortDisposition(FILE *file, register argument_t *arg) in WriteRPCPortDisposition() argument
2281 fprintf(file, " | MACH_RPC_MOVE_RECEIVE"); in WriteRPCPortDisposition()
2285 fprintf(file, " | MACH_RPC_MOVE_SEND"); in WriteRPCPortDisposition()
2289 fprintf(file, " | MACH_RPC_MOVE_SEND_ONCE"); in WriteRPCPortDisposition()
2293 fprintf(file, " | MACH_RPC_COPY_SEND"); in WriteRPCPortDisposition()
2297 fprintf(file, " | MACH_RPC_MAKE_SEND"); in WriteRPCPortDisposition()
2301 fprintf(file, " | MACH_RPC_MAKE_SEND_ONCE"); in WriteRPCPortDisposition()
2307 WriteRPCArgDescriptor(FILE *file, register argument_t *arg, int offset) in WriteRPCArgDescriptor() argument
2309 fprintf(file, " {\n 0 "); in WriteRPCArgDescriptor()
2312 fprintf(file, "| MACH_RPC_PORT "); in WriteRPCArgDescriptor()
2314 fprintf(file, "| MACH_RPC_ARRAY "); in WriteRPCArgDescriptor()
2316 fprintf(file, "| MACH_RPC_VARIABLE "); in WriteRPCArgDescriptor()
2317 WriteRPCPortDisposition(file, arg); in WriteRPCArgDescriptor()
2321 fprintf(file, "| MACH_RPC_PORT_ARRAY "); in WriteRPCArgDescriptor()
2323 fprintf(file, "| MACH_RPC_VARIABLE "); in WriteRPCArgDescriptor()
2324 WriteRPCPortDisposition(file, arg); in WriteRPCArgDescriptor()
2327 fprintf(file, "| MACH_RPC_ARRAY_FIXED "); in WriteRPCArgDescriptor()
2329 fprintf(file, "| MACH_RPC_ARRAY_VARIABLE "); in WriteRPCArgDescriptor()
2331 fprintf(file, " | MACH_RPC_IN "); in WriteRPCArgDescriptor()
2333 fprintf(file, " | MACH_RPC_OUT "); in WriteRPCArgDescriptor()
2335 fprintf(file, " | MACH_RPC_POINTER "); in WriteRPCArgDescriptor()
2337 fprintf(file, " | MACH_RPC_DEALLOCATE "); in WriteRPCArgDescriptor()
2339 fprintf(file, " | MACH_RPC_PHYSICAL_COPY "); in WriteRPCArgDescriptor()
2340 fprintf(file, ",\n"); in WriteRPCArgDescriptor()
2341 fprintf(file, " %d,\n", (arg->argType->itSize / 8)); in WriteRPCArgDescriptor()
2342 fprintf(file, " %d,\n", arg->argType->itNumber); in WriteRPCArgDescriptor()
2343 fprintf(file, " %d,\n },\n", offset); in WriteRPCArgDescriptor()
2347 WriteRPCRoutineDescriptor(FILE *file, routine_t *rt __unused, int arg_count, in WriteRPCRoutineDescriptor() argument
2352 fprintf(file, " { (mig_impl_routine_t) 0,\n\ in WriteRPCRoutineDescriptor()
2355 fprintf(file, "%d, %d, %s }", arg_count, descr_count, sig_array); in WriteRPCRoutineDescriptor()
2359 WriteRPCRoutineArgDescriptor(FILE *file, register routine_t *rt) in WriteRPCRoutineArgDescriptor() argument
2372 WriteRPCArgDescriptor(file, arg, offset); in WriteRPCRoutineArgDescriptor()
2390 WriteRPCSignature(FILE *file, register routine_t *rt) in WriteRPCSignature() argument
2395 fprintf(file, " kern_return_t rtn;\n"); in WriteRPCSignature()
2397 fprintf(file, " const static struct\n {\n"); in WriteRPCSignature()
2398 fprintf(file, " struct rpc_routine_descriptor rd;\n"); in WriteRPCSignature()
2399 fprintf(file, " struct rpc_routine_arg_descriptor rad[%d];\n", descr_count); in WriteRPCSignature()
2400 fprintf(file, " } sig =\n {\n"); in WriteRPCSignature()
2401 WriteRPCRoutineDescriptor(file, rt, arg_count, descr_count, "0", "sig.rad, 0"); in WriteRPCSignature()
2402 fprintf(file, ",\n"); in WriteRPCSignature()
2403 fprintf(file, " {\n"); in WriteRPCSignature()
2404 WriteRPCRoutineArgDescriptor(file, rt); in WriteRPCSignature()
2405 fprintf(file, "\n }\n"); in WriteRPCSignature()
2406 fprintf(file, "\n };\n\n"); in WriteRPCSignature()
2410 WriteRPCCall(FILE *file, register routine_t *rt) in WriteRPCCall() argument
2418 …fprintf(file, " rtn = (MACH_RPC(&sig, (mach_msg_size_t)sizeof(sig), %d, %s,\n", rt->rtNumber + … in WriteRPCCall()
2419 fprintf(file, " (%s", arg->argVarName); in WriteRPCCall()
2424 fprintf(file, ",\n "); in WriteRPCCall()
2426 fprintf(file, ", "); in WriteRPCCall()
2427 fprintf(file, "%s", arg->argVarName); in WriteRPCCall()
2430 fprintf(file, ")));\n"); in WriteRPCCall()
2431 fprintf(file, "\n"); in WriteRPCCall()
2432 fprintf(file, " if (rtn != KERN_NO_ACCESS) return rtn;\n\n"); in WriteRPCCall()
2433 fprintf(file, "/* The following message rpc code is generated for the network case */\n\n"); in WriteRPCCall()
2459 WriteRPCRoutine(FILE *file, register routine_t *rt) in WriteRPCRoutine() argument
2463 WriteRPCSignature(file, rt); in WriteRPCRoutine()
2464 WriteRPCCall(file, rt); in WriteRPCRoutine()
2472 WriteShortCircInArgBefore(FILE *file, register argument_t *arg) in WriteShortCircInArgBefore() argument
2477 fprintf(file, "\n\t/* IN %s: */\n", arg->argVarName); in WriteShortCircInArgBefore()
2491 fprintf(file, "\t(void)vm_read(mach_task_self(),\n"); in WriteShortCircInArgBefore()
2492 …fprintf(file, "\t\t (vm_address_t) %s%s, %s, (vm_address_t *) &_%sTemp_, &_MIG_Ignore_Count_)… in WriteShortCircInArgBefore()
2496 fprintf(file, "\t*(char **)&%s%s = _%sTemp_;\n", in WriteShortCircInArgBefore()
2503 fprintf(file, "\t_%sTemp_ = (char *) %s%s;\n", in WriteShortCircInArgBefore()
2528 fprintf(file, "\t{ char _%sTemp_[%d];\n", in WriteShortCircInArgBefore()
2534 …fprintf(file, "\t{ _%sTemp_ = (char *) %s(%d);\n", arg->argVarName, MessAllocRoutine, it->itType… in WriteShortCircInArgBefore()
2537 WriteCopyArg(file, arg, "_%sTemp_", "/* %s */ (char *) %s", in WriteShortCircInArgBefore()
2540 fprintf(file, "\t *(char **)&%s%s = _%sTemp_;\n", in WriteShortCircInArgBefore()
2544 fprintf(file, "\t}\n"); in WriteShortCircInArgBefore()
2553 WriteShortCircOutArgBefore(FILE *file, register argument_t *arg) in WriteShortCircOutArgBefore() argument
2557 fprintf(file, "\n\t/* OUT %s: */\n", arg->argVarName); in WriteShortCircOutArgBefore()
2560 fprintf(file, "\n\t/* OUT %s: */\n", arg->argVarName); in WriteShortCircOutArgBefore()
2570 fprintf(file, "\t _%sTemp_ = (char *) %s%s;\n", in WriteShortCircOutArgBefore()
2591 WriteShortCircInArgAfter(FILE *file, register argument_t *arg) in WriteShortCircInArgAfter() argument
2596 fprintf(file, "\n\t/* IN %s: */\n", arg->argVarName); in WriteShortCircInArgAfter()
2613 fprintf(file, "\t(void)vm_deallocate(mach_task_self(),"); in WriteShortCircInArgAfter()
2614 fprintf(file, " (vm_address_t *) _%sTemp_, %s);\n", in WriteShortCircInArgAfter()
2632 fprintf(file, "\t%s(_%sTemp_, %d);\n", in WriteShortCircInArgAfter()
2641 WriteShortCircOutArgAfter(FILE *file, register argument_t *arg) in WriteShortCircOutArgAfter() argument
2646 fprintf(file, "\n\t/* OUT %s: */\n", arg->argVarName); in WriteShortCircOutArgAfter()
2661 fprintf(file, "\t(void)vm_read(mach_task_self(),\n"); in WriteShortCircOutArgAfter()
2662 …fprintf(file, "\t\t (vm_address_t) %s%s, %s, (vm_address_t *) &_%sTemp_, &_MIG_Ignore_Count_)… in WriteShortCircOutArgAfter()
2668 fprintf(file, "\t(void)vm_deallocate(mach_task_self(),"); in WriteShortCircOutArgAfter()
2669 fprintf(file, " (vm_address_t *) %s%s, %s);\n", in WriteShortCircOutArgAfter()
2674 fprintf(file, "\t*(char **)&%s%s = _%sTemp_;\n", in WriteShortCircOutArgAfter()
2693 WriteShortCircRPC(FILE *file, register routine_t *rt) in WriteShortCircRPC() argument
2700 fprintf(file, " if (0 /* Should be: !(%s & 0x3) XXX */) {\n", in WriteShortCircRPC()
2727 fprintf(file, in WriteShortCircRPC()
2730 fprintf(file, "\n"); in WriteShortCircRPC()
2731 fprintf(file, " if (subsystem && subsystem->start == %d) {\n", in WriteShortCircRPC()
2733 fprintf(file, "\tkern_return_t rtn;\n"); in WriteShortCircRPC()
2734 fprintf(file, "\n"); in WriteShortCircRPC()
2749 fprintf(file, in WriteShortCircRPC()
2757 fprintf(file, "\tchar *_%sTemp_;\n", arg->argVarName); in WriteShortCircRPC()
2763 fprintf(file, "\t/* Pre-Process the IN arguments: */\n"); in WriteShortCircRPC()
2766 WriteShortCircInArgBefore(file, arg); in WriteShortCircRPC()
2768 WriteShortCircOutArgBefore(file, arg); in WriteShortCircRPC()
2770 fprintf(file, "\n"); in WriteShortCircRPC()
2782 fprintf(file, "\trtn = RPC_SIMPLE(%s, %d, %d, (", in WriteShortCircRPC()
2785 fprintf(file, "%s", arg->argVarName); in WriteShortCircRPC()
2788 fprintf(file, ",\n\t\t"); in WriteShortCircRPC()
2790 fprintf(file, ", "); in WriteShortCircRPC()
2791 fprintf(file, "%s", arg->argVarName); in WriteShortCircRPC()
2794 fprintf(file, "));\n"); in WriteShortCircRPC()
2795 fprintf(file, "\n"); in WriteShortCircRPC()
2798 fprintf(file, "\t/* Post-Process the IN and OUT arguments: */\n"); in WriteShortCircRPC()
2801 WriteShortCircInArgAfter(file, arg); in WriteShortCircRPC()
2803 WriteShortCircOutArgAfter(file, arg); in WriteShortCircRPC()
2805 fprintf(file, "\n"); in WriteShortCircRPC()
2807 fprintf(file, "\treturn rtn;\n"); in WriteShortCircRPC()
2808 fprintf(file, " }\n"); in WriteShortCircRPC()
2819 fprintf(file, " %s = (ipc_port_t)%s->rp_receiver_name;\n", in WriteShortCircRPC()
2823 fprintf(file, " %s = ((rpc_port_t)%s)->rp_receiver_name;\n", in WriteShortCircRPC()
2828 fprintf(file, " }\n"); in WriteShortCircRPC()
2832 WriteStubDecl(FILE *file, register routine_t *rt) in WriteStubDecl() argument
2834 fprintf(file, "\n"); in WriteStubDecl()
2835 fprintf(file, "/* %s %s */\n", rtRoutineKindToStr(rt->rtKind), rt->rtName); in WriteStubDecl()
2836 fprintf(file, "mig_external %s %s\n", ReturnTypeStr(rt), rt->rtUserName); in WriteStubDecl()
2838 fprintf(file, "(\n"); in WriteStubDecl()
2839 WriteList(file, rt->rtArgs, WriteUserVarDecl, akbUserArg, ",\n", "\n"); in WriteStubDecl()
2840 fprintf(file, ")\n"); in WriteStubDecl()
2842 fprintf(file, "#if\t%s\n", NewCDecl); in WriteStubDecl()
2843 fprintf(file, "(\n"); in WriteStubDecl()
2844 WriteList(file, rt->rtArgs, WriteUserVarDecl, akbUserArg, ",\n", "\n"); in WriteStubDecl()
2845 fprintf(file, ")\n"); in WriteStubDecl()
2846 fprintf(file, "#else\n"); in WriteStubDecl()
2847 fprintf(file, "\t("); in WriteStubDecl()
2848 WriteList(file, rt->rtArgs, WriteNameDecl, akbUserArg, ", ", ""); in WriteStubDecl()
2849 fprintf(file, ")\n"); in WriteStubDecl()
2850 WriteList(file, rt->rtArgs, WriteUserVarDecl, akbUserArg, ";\n", ";\n"); in WriteStubDecl()
2851 fprintf(file, "#endif\t/* %s */\n", NewCDecl); in WriteStubDecl()
2853 fprintf(file, "{\n"); in WriteStubDecl()
2926 WriteLimitCheck(FILE *file, routine_t *rt) in WriteLimitCheck() argument
2932 fprintf(file, "#if LimitCheck\n"); in WriteLimitCheck()
2935 fprintf(file, "\tif ((sizeof(Request) - %d) > %d)\n", in WriteLimitCheck()
2937 fprintf(file, "\t __RequestOnStackAbort(%d, \"%s\");\n", in WriteLimitCheck()
2940 fprintf(file, "\tif (sizeof(Request) < %d)\n", in WriteLimitCheck()
2942 fprintf(file, "\t __MessageOffStackNote(%d, \"%s\");\n", in WriteLimitCheck()
2948 fprintf(file, "\tif ((sizeof(Reply) - %d) > %d)\n", in WriteLimitCheck()
2950 fprintf(file, "\t __ReplyOnStackAbort(%d, \"%s\");\n", in WriteLimitCheck()
2953 fprintf(file, "\tif (sizeof(Reply) < %d)\n", in WriteLimitCheck()
2955 fprintf(file, "\t __MessageOffStackNote(%d, \"%s\");\n", in WriteLimitCheck()
2961 fprintf(file, "\tif (sizeof(Request) < %d \n", in WriteLimitCheck()
2963 fprintf(file, "&& sizeof(Reply) < %d)\n", in WriteLimitCheck()
2965 fprintf(file, "\t __MessageOffStackNote(%d, \"%s\");\n", in WriteLimitCheck()
2968 fprintf(file, "#endif /* LimitCheck */\n"); in WriteLimitCheck()
2972 WriteCheckReply(FILE *file, routine_t *rt) in WriteCheckReply() argument
2982 fprintf(file, "\n"); in WriteCheckReply()
2983 fprintf(file, "#if ( __MigTypeCheck "); in WriteCheckReply()
2985 fprintf(file, "|| __NDR_convert__ "); in WriteCheckReply()
2986 fprintf(file, ")\n"); in WriteCheckReply()
2987 fprintf(file, "#if __MIG_check__Reply__%s_subsystem__\n", SubsystemName); in WriteCheckReply()
2988 fprintf(file, "#if !defined(__MIG_check__Reply__%s_t__defined)\n", rt->rtName); in WriteCheckReply()
2989 fprintf(file, "#define __MIG_check__Reply__%s_t__defined\n", rt->rtName); in WriteCheckReply()
2991 WriteList(file, rt->rtArgs, WriteReplyNDRConvertIntRepArgDecl, akbReturnNdr, "\n", "\n"); in WriteCheckReply()
2992 WriteList(file, rt->rtArgs, WriteReplyNDRConvertCharRepArgDecl, akbReturnNdr, "\n", "\n"); in WriteCheckReply()
2993 WriteList(file, rt->rtArgs, WriteReplyNDRConvertFloatRepArgDecl, akbReturnNdr, "\n", "\n"); in WriteCheckReply()
2995 fprintf(file, "\n"); in WriteCheckReply()
2996 …fprintf(file, "mig_internal kern_return_t __MIG_check__Reply__%s_t(__Reply__%s_t *Out0P", rt->rtNa… in WriteCheckReply()
2998 fprintf(file, ", __Reply__%s_t **Out%dPP", rt->rtName, i); in WriteCheckReply()
2999 fprintf(file, ")\n{\n"); in WriteCheckReply()
3002 fprintf(file, "\n\ttypedef __Reply__%s_t __Reply;\n", rt->rtName); in WriteCheckReply()
3004 fprintf(file, "\t__Reply *Out%dP;\n", i); in WriteCheckReply()
3006 fprintf(file, "\tboolean_t msgh_simple;\n"); in WriteCheckReply()
3008 fprintf(file, "#if\t__MigTypeCheck\n"); in WriteCheckReply()
3009 fprintf(file, "\tunsigned int msgh_size;\n"); in WriteCheckReply()
3010 fprintf(file, "#endif\t/* __MigTypeCheck */\n"); in WriteCheckReply()
3013 fprintf(file, "\tunsigned int msgh_size_delta;\n"); in WriteCheckReply()
3015 fprintf(file, "\n"); in WriteCheckReply()
3019 WriteCheckIdentity(file, rt); in WriteCheckReply()
3027 WriteReplyNDRConvertIntRepOneArgUse(file, rt->rtRetCode); in WriteCheckReply()
3028 WriteReturn(file, rt, "\t", stRetCode, "\n"); in WriteCheckReply()
3032 WriteLogMsg(file, rt, LOG_USER, LOG_REPLY); in WriteCheckReply()
3034 WriteRetCodeCheck(file, rt); in WriteCheckReply()
3037 WriteList(file, rt->rtArgs, WriteTypeCheck, akbReturnKPD, "\n", "\n"); in WriteCheckReply()
3050 WriteAdjustReplyMsgPtr(file, lastVarArg); in WriteCheckReply()
3056 WriteCheckMsgSize(file, arg); in WriteCheckReply()
3064 fprintf(file, "#if\t"); in WriteCheckReply()
3065 WriteList(file, rt->rtArgs, WriteReplyNDRConvertIntRepArgCond, akbReturnNdr, " || \\\n\t", "\n"); in WriteCheckReply()
3066 fprintf(file, "\tif (Out0P->NDR.int_rep != NDR_record.int_rep) {\n"); in WriteCheckReply()
3067 WriteList(file, rt->rtArgs, WriteReplyNDRConvertIntRepArgUse, akbReturnNdr, "", ""); in WriteCheckReply()
3068 fprintf(file, "\t}\n#endif\t/* defined(__NDR_convert__int_rep...) */\n\n"); in WriteCheckReply()
3070 fprintf(file, "#if\t"); in WriteCheckReply()
3071 … WriteList(file, rt->rtArgs, WriteReplyNDRConvertCharRepArgCond, akbReturnNdr, " || \\\n\t", "\n"); in WriteCheckReply()
3072 fprintf(file, "\tif (Out0P->NDR.char_rep != NDR_record.char_rep) {\n"); in WriteCheckReply()
3073 WriteList(file, rt->rtArgs, WriteReplyNDRConvertCharRepArgUse, akbReturnNdr, "", ""); in WriteCheckReply()
3074 fprintf(file, "\t}\n#endif\t/* defined(__NDR_convert__char_rep...) */\n\n"); in WriteCheckReply()
3076 fprintf(file, "#if\t"); in WriteCheckReply()
3077 …WriteList(file, rt->rtArgs, WriteReplyNDRConvertFloatRepArgCond, akbReturnNdr, " || \\\n\t", "\n"); in WriteCheckReply()
3078 fprintf(file, "\tif (Out0P->NDR.float_rep != NDR_record.float_rep) {\n"); in WriteCheckReply()
3079 WriteList(file, rt->rtArgs, WriteReplyNDRConvertFloatRepArgUse, akbReturnNdr, "", ""); in WriteCheckReply()
3080 fprintf(file, "\t}\n#endif\t/* defined(__NDR_convert__float_rep...) */\n\n"); in WriteCheckReply()
3082 fprintf(file, "\treturn MACH_MSG_SUCCESS;\n"); in WriteCheckReply()
3084 fprintf(file, "}\n"); in WriteCheckReply()
3085 fprintf(file, "#endif /* !defined(__MIG_check__Reply__%s_t__defined) */\n", rt->rtName); in WriteCheckReply()
3086 fprintf(file, "#endif /* __MIG_check__Reply__%s_subsystem__ */\n", SubsystemName); in WriteCheckReply()
3087 fprintf(file, "#endif /* ( __MigTypeCheck "); in WriteCheckReply()
3089 fprintf(file, "|| __NDR_convert__ "); in WriteCheckReply()
3090 fprintf(file, ") */\n\n"); in WriteCheckReply()
3094 WriteCheckReplyCall(FILE *file, routine_t *rt) in WriteCheckReplyCall() argument
3098 fprintf(file, "\n"); in WriteCheckReplyCall()
3099 fprintf(file, "#if\tdefined(__MIG_check__Reply__%s_t__defined)\n", rt->rtName); in WriteCheckReplyCall()
3100 …fprintf(file, "\tcheck_result = __MIG_check__Reply__%s_t((__Reply__%s_t *)Out0P", rt->rtName, rt->… in WriteCheckReplyCall()
3102 fprintf(file, ", (__Reply__%s_t **)&Out%dP", rt->rtName, i); in WriteCheckReplyCall()
3103 fprintf(file, ");\n"); in WriteCheckReplyCall()
3104 fprintf(file, "\tif (check_result != MACH_MSG_SUCCESS)\n"); in WriteCheckReplyCall()
3105 WriteReturnMsgError(file, rt, TRUE, argNULL, "check_result"); in WriteCheckReplyCall()
3106 fprintf(file, "#endif\t/* defined(__MIG_check__Reply__%s_t__defined) */\n", rt->rtName); in WriteCheckReplyCall()
3107 fprintf(file, "\n"); in WriteCheckReplyCall()
3111 WriteCheckReplies(FILE *file, statement_t *stats) in WriteCheckReplies() argument
3117 WriteCheckReply(file, stat->stRoutine); in WriteCheckReplies()
3121 WriteCheckReplyTrailerArgs(FILE *file, routine_t *rt) in WriteCheckReplyTrailerArgs() argument
3126 WriteCheckTrailerHead(file, rt, TRUE); in WriteCheckReplyTrailerArgs()
3130 WriteCheckTrailerSize(file, TRUE, arg); in WriteCheckReplyTrailerArgs()
3133 fprintf(file, "\n"); in WriteCheckReplyTrailerArgs()
3142 WriteRoutine(FILE *file, register routine_t *rt) in WriteRoutine() argument
3145 WriteStubDecl(file, rt); in WriteRoutine()
3149 WriteRPCRoutine(file, rt); in WriteRoutine()
3153 WriteShortCircRPC(file, rt); in WriteRoutine()
3156 WriteStructDecl(file, rt->rtArgs, WriteFieldDecl, akbRequest, in WriteRoutine()
3159 WriteStructDecl(file, rt->rtArgs, WriteFieldDecl, akbReply, in WriteRoutine()
3161 WriteStructDecl(file, rt->rtArgs, WriteFieldDecl, akbReply, in WriteRoutine()
3165 WriteStructDecl(file, rt->rtArgs, WriteFieldDecl, akbReply|akbOverwrite, in WriteRoutine()
3170 fprintf(file, "\t/*\n"); in WriteRoutine()
3171 fprintf(file, "\t * typedef struct {\n"); in WriteRoutine()
3172 fprintf(file, "\t * \tmach_msg_header_t Head;\n"); in WriteRoutine()
3173 fprintf(file, "\t * \tNDR_record_t NDR;\n"); in WriteRoutine()
3174 fprintf(file, "\t * \tkern_return_t RetCode;\n"); in WriteRoutine()
3175 fprintf(file, "\t * } mig_reply_error_t;\n"); in WriteRoutine()
3176 fprintf(file, "\t */\n"); in WriteRoutine()
3177 fprintf(file, "\n"); in WriteRoutine()
3183 WriteVarDecls(file, rt); in WriteRoutine()
3188 WriteList(file, rt->rtArgs, WriteTemplateDeclIn, akbRequest | akbSendKPD, "\n", "\n"); in WriteRoutine()
3190 WriteLimitCheck(file, rt); in WriteRoutine()
3191 WriteRetCodeArg(file, rt); in WriteRoutine()
3196 fprintf(file, "\tInP->msgh_body.msgh_descriptor_count = %d;\n", in WriteRoutine()
3201 WriteRequestArgs(file, rt); in WriteRoutine()
3205 WriteRequestHead(file, rt); in WriteRoutine()
3206 fprintf(file, "\n"); in WriteRoutine()
3209 WriteApplMacro(file, "Send", "Before", rt); in WriteRoutine()
3214 WriteLogMsg(file, rt, LOG_USER, LOG_REQUEST); in WriteRoutine()
3217 WriteMsgSend(file, rt); in WriteRoutine()
3227 WriteOverwriteTemplate(file, rt); in WriteRoutine()
3228 WriteMsgRPC(file, rt); in WriteRoutine()
3230 WriteMsgSendReceive(file, rt); in WriteRoutine()
3232 WriteCheckReplyCall(file, rt); in WriteRoutine()
3233 WriteCheckReplyTrailerArgs(file, rt); in WriteRoutine()
3236 WriteLogMsg(file, rt, LOG_USER, LOG_REPLY); in WriteRoutine()
3238 WriteReplyArgs(file, rt); in WriteRoutine()
3242 WriteReturnValue(file, rt); in WriteRoutine()
3243 fprintf(file, "}\n"); in WriteRoutine()
3247 WriteRPCClientFunctions(FILE *file, statement_t *stats) in WriteRPCClientFunctions() argument
3253 fprintf(file, "#ifdef AUTOTEST\n"); in WriteRPCClientFunctions()
3257 fprintf(file, "extern void client_%s%s;\n", fname, argfmt); in WriteRPCClientFunctions()
3259 fprintf(file, "function_table_entry %s_client_functions[] =\n", SubsystemName); in WriteRPCClientFunctions()
3260 fprintf(file, "{\n"); in WriteRPCClientFunctions()
3265 fprintf(file, " { \"%s\", client_%s },\n", fname, fname); in WriteRPCClientFunctions()
3267 fprintf(file, " { (char *) 0, (function_ptr_t) 0 }\n"); in WriteRPCClientFunctions()
3268 fprintf(file, "};\n"); in WriteRPCClientFunctions()
3269 fprintf(file, "#endif /* AUTOTEST */\n"); in WriteRPCClientFunctions()
3276 WriteUser(FILE *file, statement_t *stats) in WriteUser() argument
3280 WriteProlog(file, stats); in WriteUser()
3282 WriteRPCClientFunctions(file, stats); in WriteUser()
3287 WriteCheckReply(file, stat->stRoutine); in WriteUser()
3288 WriteRoutine(file, stat->stRoutine); in WriteUser()
3300 WriteEpilog(file); in WriteUser()
3316 FILE *file; in WriteUserIndividual() local
3321 file = fopen(filename, "w"); in WriteUserIndividual()
3322 if (file == NULL) in WriteUserIndividual()
3325 WriteProlog(file, stats); in WriteUserIndividual()
3326 WriteRoutine(file, stat->stRoutine); in WriteUserIndividual()
3327 WriteEpilog(file); in WriteUserIndividual()
3328 fclose(file); in WriteUserIndividual()