summaryrefslogtreecommitdiff
path: root/routine.c
AgeCommit message (Collapse)Author
2022-08-27fix message fields alignment for 64 bitLuca Dariz
On x86_64 alignment of structures is different, as the pointer size is different. For simplicity we keep the same 4-byte alignment as used on 32-bit. This simplifies the support for 32-bit rpc on 64-bit kernels, and also it seems not worth as an optimization, as we would need to add more code in the ipc_kmsg* routines. * routine.c: align both short and long descriptors * utils.c: use a fixed alignment for data fields in structures representing messages. Signed-off-by: Luca Dariz <luca@orpolo.org> Message-Id: <20220628094927.442907-2-luca@orpolo.org>
2020-06-18cpu.sym: Replace implementation from Utah with implementation from CMUSamuel Thibault
This replaces the implementation from the University of Utah, covered by the advertising clause, with the implementation from CMU, picked up from the GNU Mach source, which is free from the advertising clause. This includes the addition of the sizeof as seen used by mig with git grep word_size git grep sizeof_
2016-03-20Remove functions, procedures and simple procedures.Flavio Cruz
This has been tested by cross-compiling a base Hurd system to make sure these kinds of routines are no longer used. * lexxer.l: Remove tokens. * parser.y: Remove token types and production rules. * routine.c: Remove rtMakeProcedure, rtMakeSimpleProcedure, rtMakeFunction. * routine.h: Remove enum values rkSimpleProcedure, rkProcedure, rkFunction. Remove dead fields from struct routine. * user.c: Simplify and remove dead code.
2014-10-10Add support for protected payloadsJustus Winter
Add support for protected payloads. The new `intranpayload' option can be used to specify a translation function translating payloads to values of the translated type. This function will be used instead of the `intran' function to to look up the receiving object of a message in a server. This makes it easy to use the protected payloads introduced in GNU Mach 1.5. An inTransPayload function translates payloads to objects, like an inTrans function translates from port names to objects. Generate code in the server routine to optimize lookups to the receiver of the message. Additionally, if no intran function is provided, but an intranpayload function is, it is expected to translate from payloads to port names. This is used to preserve the semantics in case the server routine expects a port name. * NEWS: Add item. * lexxer.l: Emit syInTranPayload. * parser.h: Define syInTranPayload. * parser.y (TransTypeSpec): Handle syInTranPayload. * type.h (struct ipc_type): Add itInTransPayload. * server.c (WriteExtractArgValue): If a payload-aware intrans function has been specified, use it to get a reference to the receiving object. * routine.c (rtAugmentArgKind): Force the use of a local variable if a payload-aware translate-in function is defined.
2013-08-19Drop the register keywordJustus Winter
Drop the register keyword both from MIGs code and from the generated code. The register keyword is only a hint and it is ignored by modern compilers. * alloca.c: Drop the register keyword. * header.c: Likewise. * lexxer.l: Likewise. * parser.y: Likewise. * routine.c: Likewise. * server.c: Likewise. * statement.c: Likewise. * string.c: Likewise. * type.c: Likewise. * user.c: Likewise. * utils.c: Likewise. * vprint.c: Likewise.
2006-11-302006-11-29 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
Fix compiler, flex and bison warnings. * error.c: Include <stdlib.h>. * lexxer.h (yylex): Add declaration. * migcom.c: Include <stdlib.h>. (main): Set USER, SHEADER and IHEADER to `NULL' by default. (myfclose): Add lost conversion specifications. * parser.h (yyerror): Add declaration. * routine.c (rtPrintArg, rtCheckRoutine): Add braces to avoid ambiguousness. * server.c (WriteSymTabEntries): Make NUM an `u_int'. * user.c (WriteUserIndividual): Add a `default' case in a switch statement and add lost conversion specifications. * lexxer.l: Set option `nounput'. * parser.y (%left): Change commas to spaces.
2002-08-042002-07-31 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* routine.c (rtFindSize): Always add sizeof_mach_msg_type_t to SIZE for args not in long form, irregardless of the itSize.
2002-05-252002-05-07 Roland McGrath <roland@frob.com>Roland McGrath
* type.c (itMakeNaturalType): New function. (init_type): Use that instead of itMakeIntType for itWaitTimeType and itMsgOptionType--give them each their special typedef names. * routine.c (rtCheckArgTypes): Use itCheckNaturalType for rtMsgOption.
1998-07-18Created new module from gnumach/mig at tag before-mig-moveRoland McGrath