From owner-p4-projects@FreeBSD.ORG Thu Jan 8 11:01:23 2004 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 75A5A16A4D1; Thu, 8 Jan 2004 11:01:23 -0800 (PST) Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 4B2AD16A4CE for ; Thu, 8 Jan 2004 11:01:23 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id 32F1643D4C for ; Thu, 8 Jan 2004 11:01:19 -0800 (PST) (envelope-from areisse@nailabs.com) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.10/8.12.10) with ESMTP id i08J1J0B080578 for ; Thu, 8 Jan 2004 11:01:19 -0800 (PST) (envelope-from areisse@nailabs.com) Received: (from perforce@localhost) by repoman.freebsd.org (8.12.10/8.12.10/Submit) id i08J1I43080575 for perforce@freebsd.org; Thu, 8 Jan 2004 11:01:18 -0800 (PST) (envelope-from areisse@nailabs.com) Date: Thu, 8 Jan 2004 11:01:18 -0800 (PST) Message-Id: <200401081901.i08J1I43080575@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to areisse@nailabs.com using -f From: Andrew Reisse To: Perforce Change Reviews Subject: PERFORCE change 44963 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Jan 2004 19:01:23 -0000 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 @@ [Ss][Ee][Cc][Tt][Oo][Kk][Ee][Nn] RETURN(sySecToken); [Ss][Ee][Rr][Vv][Ee][Rr][Ss][Ee][Cc][Tt][Oo][Kk][Ee][Nn] RETURN(syServerSecToken); [Uu][Ss][Ee][Rr][Ss][Ee][Cc][Tt][Oo][Kk][Ee][Nn] RETURN(syUserSecToken); +[Mm][Ss][Gg][Ll][Aa][Bb][Ee][Ll][Ss] RETURN(syMsgLabels); +[Ss][Ee][Rr][Vv][Ee][Rr][Mm][Ss][Gg][Ll][Aa][Bb][Ee][Ll][Ss] RETURN(syServerMsgLabels); +[Uu][Ss][Ee][Rr][Mm][Ss][Gg][Ll][Aa][Bb][Ee][Ll][Ss] RETURN(syUserMsgLabels); + [Ii][Nn][Oo][Uu][Tt] RETURN(syInOut); [Rr][Ee][Qq][Uu][Ee][Ss][Tt][Pp][Oo][Rr][Tt] RETURN(syRequestPort); [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 */