aboutsummaryrefslogtreecommitdiff
path: root/user.c
Commit message (Collapse)AuthorAgeFilesLines
* Include stdint.h in stub code by default.Flavio Cruz2016-04-051-0/+1
| | | | | * server.c: Include stdint.h in the header code. * user.c: Likewise.
* Use word_size instead of 4.Flavio Cruz2016-04-031-11/+11
| | | | | | * server.c: Use word_size and update comments. * type.c: Use word_size to compute padding. * user.c: Use word_size and update comments.
* Remove functions, procedures and simple procedures.Flavio Cruz2016-03-201-24/+8
| | | | | | | | | | | | | 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.
* Do not generate code dereferencing type-punned pointersJustus Winter2015-02-151-4/+5
| | | | | | | | | | | | | | | | | | | | | | For variable-length arrays, up to 2048 bytes are transmitted inline. If the array is larger, the data is transmitted out-of-line, and a pointer to a vm_allocated region is stored at the beginning of the array. Previously, the generated code casted the field. Use a union instead. This fixes the gcc warning `dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]'. * global.c (OOLPostfix): New variable. * global.h (OOLPostfix): New declaration. * server.c (WriteServerCallArg): Avoid cast. (WriteDestroyArg): Likewise. (WritePackArgValue): Likewise. (WritePackArg): Likewise. * user.c (WriteExtractArgValue): Likewise. * utils.c (WriteFieldDeclPrim): Generate a union with an additional pointer field for variable-length arrays.
* Add static branch prediction to type checksJustus Winter2014-12-011-12/+15
| | | | | | | | | Annotate generated type checks with static branch prediction optimizing well-formed messages. * utils.c (WriteBogusDefines): Define `mig_unlikely' if not defined. * server.c: Use `mig_unlikely' in generated type checks. * user.c: Likewise.
* Fix variable-sized c stringsJustus Winter2014-02-211-0/+5
| | | | | | | | | | | | Previously, the terminating zero of variable-sized c strings was only included when copying the message if the length of the string was not a multiple of four. mig_strncpy returns the length of the string excluding the terminating zero. Fix this by properly accounting for the byte for the terminating zero in the array length. * server.c (WritePackArgValue): Account for the terminating zero in the array length. * user.c (WritePackArgValue): Likewise.
* Drop the register keywordJustus Winter2013-08-191-52/+52
| | | | | | | | | | | | | | | | | | | 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.
* Fix indentationSamuel Thibault2010-01-041-1/+1
| | | | | * user.c (WriteCheckIdentity): Prepend `\t' before calling WriteMsgError.
* Fix warning during mach compilationSamuel Thibault2009-10-251-0/+2
| | | | | * user.c (WriteIncludes): Include <kern/ipc_mig.h> when building kernel user.
* 2007-06-02 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge2007-06-021-1/+0
| | | | | | | | | * global.c (LintLib): Remove definition. * global.h (LintLib): Remove declaration. * header.c (WriteUserRoutine, WriteServerRoutine): Don't emit `Lint' code. * user.c (WriteIncludes): Likewise. * utils.c (WriteRCSDecl): Likewise.
* 2006-12-03 Leonardo Lopes Pereira <leonardolopespereira@gmail.com>Thomas Schwinge2006-12-031-40/+2
| | | | | | | | | | | | [patch #5018 --- ``Remove support to msg_send interface.''] * global.c (UseMsgRPC): Removed definition. * global.h (UseMsgRPC): Removed declaration. * mig.in (--help): Removed information about `-r' and `-R' options. * migcom.c (parseArgs): Changed the switches `-r' and `-R' to deal with the absence of obsolete the send/receive pairs. * user.c (WriteRoutine): Adapted the use of `UseMsgRPC' as if it was defined to `TRUE'. (WriteMsgSendReceive): Removed, since it is not used anymore.
* 2006-11-29 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge2006-11-301-1/+3
| | | | | | | | | | | | | | | | | 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.
* 2006-07-29 Ognyan Kulev <ogi@fmi.uni-sofia.bg>Thomas Schwinge2006-07-281-1/+3
| | | | | | * migcom.c (myfclose): New function. (main): Use myfclose instead of fclose. * user.c (WriteUserIndividual): Check for errors when closing file.
* 2004-02-10 Roland McGrath <roland@frob.com>Roland McGrath2004-02-111-1/+1
| | | | | | | | * user.c (WriteTypeCheck): Use BAD_TYPECHECK macro instead of type-pun. * server.c (WriteTypeCheck): Likewise. * utils.c (WriteBogusDefines): Write a #define for that macro. * utils.c (WriteCheckDecl): Write auto const, not static const. (WriteStaticShortDecl, WriteStaticLongDecl): Likewise.
* 1999-10-11 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath1999-10-111-1/+1
| | | | | * user.c (WriteIncludes): Fix missing newline in last change. * server.c (WriteIncludes): Likewise.
* 1999-10-08 Roland McGrath <roland@baalperazim.frob.com>Roland McGrath1999-10-091-12/+16
| | | | | | | | | | * server.c (WriteIncludes): Write: #ifndef _GNU_SOURCE #define _GNU_SOURCE 1 #endif into the output before all else. This is required for building stubs with GNU libc's built-in Mach/MiG support code. * user.c (WriteIncludes): Likewise.
* Created new module from gnumach/mig at tag before-mig-moveRoland McGrath1998-07-181-0/+1332