Date: Thu, 8 Jan 2004 11:01:18 -0800 (PST) From: Andrew Reisse <areisse@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 44963 for review Message-ID: <200401081901.i08J1I43080575@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=44963 Change 44963 by areisse@areisse_ibook on 2004/01/08 11:00:56 Support for reading message labels from the trailer. Affected files ... .. //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/lexxer.l#2 edit .. //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/parser.y#2 edit .. //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/routine.c#2 edit .. //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/routine.h#2 edit .. //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/type.c#2 edit .. //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/type.h#2 edit Differences ... ==== //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/lexxer.l#2 (text+ko) ==== @@ -138,6 +138,10 @@ <Normal>[Ss][Ee][Cc][Tt][Oo][Kk][Ee][Nn] RETURN(sySecToken); <Normal>[Ss][Ee][Rr][Vv][Ee][Rr][Ss][Ee][Cc][Tt][Oo][Kk][Ee][Nn] RETURN(syServerSecToken); <Normal>[Uu][Ss][Ee][Rr][Ss][Ee][Cc][Tt][Oo][Kk][Ee][Nn] RETURN(syUserSecToken); +<Normal>[Mm][Ss][Gg][Ll][Aa][Bb][Ee][Ll][Ss] RETURN(syMsgLabels); +<Normal>[Ss][Ee][Rr][Vv][Ee][Rr][Mm][Ss][Gg][Ll][Aa][Bb][Ee][Ll][Ss] RETURN(syServerMsgLabels); +<Normal>[Uu][Ss][Ee][Rr][Mm][Ss][Gg][Ll][Aa][Bb][Ee][Ll][Ss] RETURN(syUserMsgLabels); + <Normal>[Ii][Nn][Oo][Uu][Tt] RETURN(syInOut); <Normal>[Rr][Ee][Qq][Uu][Ee][Ss][Tt][Pp][Oo][Rr][Tt] RETURN(syRequestPort); <Normal>[Rr][Ee][Pp][Ll][Yy][Pp][Oo][Rr][Tt] RETURN(syReplyPort); ==== //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/parser.y#2 (text+ko) ==== @@ -100,9 +100,13 @@ %token syValueOf %token syCString + %token sySecToken %token syUserSecToken %token syServerSecToken +%token syMsgLabels +%token syUserMsgLabels +%token syServerMsgLabels %token syColon %token sySemi @@ -681,6 +685,9 @@ | sySecToken { $$ = akSecToken; } | syServerSecToken { $$ = akServerSecToken; } | syUserSecToken { $$ = akUserSecToken; } + | syMsgLabels { $$ = akMsgLabels; } + | syServerMsgLabels { $$ = akServerMsgLabels; } + | syUserMsgLabels { $$ = akUserMsgLabels; } | syMsgSeqno { $$ = akMsgSeqno; } ; ==== //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/routine.c#2 (text+ko) ==== @@ -216,6 +216,9 @@ case akeSecToken: printf("SecToken\t"); break; + case akeMsgLabels: + printf("MsgLabels\t"); + break; case akeImplicit: printf("Implicit\t"); break; @@ -928,6 +931,9 @@ case akeSecToken: arg->argMsgField = "msgh_sender"; break; + case akeMsgLabels: + arg->argMsgField = "msgh_labels"; + break; case akeMsgSeqno: arg->argMsgField = "msgh_seqno"; break; @@ -1192,6 +1198,9 @@ if (akIdent(arg->argKind) == akeSecToken) itCheckSecTokenType(arg->argVarName, arg->argType); + if (akIdent(arg->argKind) == akeMsgLabels) + itCheckMsgLabelsType(arg->argVarName, arg->argType); + if (akIdent(arg->argKind) == akeMsgSeqno) itCheckIntType(arg->argVarName, arg->argType); /* @@ -1450,6 +1459,10 @@ if (akIdent(arg->argKind) == akeSecToken) msgop->argVarName = strconcat(msgop->argVarName, "|MACH_RCV_TRAILER_ELEMENTS(MACH_RCV_TRAILER_SENDER)"); + else if (akIdent(arg->argKind) == akeMsgLabels) + msgop->argVarName = strconcat(msgop->argVarName, + "|MACH_RCV_TRAILER_ELEMENTS(MACH_RCV_TRAILER_LABELS)"); + /* other implicit data received by the user will be handled here */ } } ==== //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/routine.h#2 (text+ko) ==== @@ -76,6 +76,7 @@ #define akeImplicit (16) /* an implicit argument, from the trailer */ #define akeSecToken (17) /* an argument from the trailer: the security token */ #define akeSendTime (18) /* pointed at by rtWaitTime */ +#define akeMsgLabels (19) /* an argument from the trailer: message labels */ #define akeBITS (0x0000003f) #define akbRequest (0x00000040) /* has a msg_type in request */ @@ -233,6 +234,14 @@ akbServerArg|akbServerImplicit|akbSend|akbSendRcv| \ akbUserArg|akbUserImplicit|akbReturn|akbReturnRcv) +#define akServerMsgLabels akAddFeature(akeMsgLabels, \ + akbServerArg|akbServerImplicit|akbSend|akbSendRcv) +#define akUserMsgLabels akAddFeature(akeMsgLabels, \ + akbUserArg|akbUserImplicit|akbReturn|akbReturnRcv) +#define akMsgLabels akAddFeature(akeMsgLabels, \ + akbServerArg|akbServerImplicit|akbSend|akbSendRcv| \ + akbUserArg|akbUserImplicit|akbReturn|akbReturnRcv) + #define akMsgSeqno akAddFeature(akeMsgSeqno, \ akbServerArg|akbServerImplicit|akbSend|akbSendRcv) ==== //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/type.c#2 (text+ko) ==== @@ -946,3 +946,14 @@ it->itVarArray || it->itPortType) error("argument %s isn't a proper SecToken", name); } + +void +itCheckMsgLabelsType(name, it) + identifier_t name; + ipc_type_t *it; +{ + if (it->itMigInLine || it->itNoOptArray || it->itString || + it->itTypeSize != 64 || !it->itInLine || !it->itStruct || + it->itVarArray || it->itPortType) + error("argument %s isn't a proper msg_labels_t", name); +} ==== //depot/projects/trustedbsd/sedarwin/apsl/bootstrap_cmds/migcom.tproj/type.h#2 (text+ko) ==== @@ -260,5 +260,6 @@ extern void itCheckReplyPortType(/* identifier_t name, ipc_type_t *it */); extern void itCheckIntType(/* identifier_t name, ipc_type_t *it */); extern void itCheckSecTokenType(/* identifier_t name, ipc_type_t *it */); +extern void itCheckMsgLabelsType(/* identifier_t name, ipc_type_t *it */); #endif /* _TYPE_H */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200401081901.i08J1I43080575>