bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: hurd_types.defs help


From: Roland McGrath
Subject: Re: hurd_types.defs help
Date: Tue, 10 Oct 2000 04:07:05 -0400 (EDT)

> I am reading the server writers guide and I was looking through the
> hurd_types.defs file and I noticed declarations for INTRAN, OUTTRAN, and
> DESTRUCTOR for a number of subsystems. The syntax for these looks different
> than how they show it in the Mach guide. Are these just macros? Say for
> instance:
> 
>       intran: IO_INTRAN
> 
> is IO_INTRAN a macro defining a translation routine?

Yes.  If you look at individual servers' source directories, you'll see
files called foobarmutations.h, e.g. libdiskfs/fsmutations.h.  These are
used by the Makefile via -imacros flags given to the preprocessor when
handling .defs files to go into mig.  

> Also where would I be able to find out what all the types, constants and
> structures are? Like if I wanted to know what mach_port_copy_send_t is.

Anything that starts with mach_ is in a <mach/*.h> or <mach/*.defs>
header file.  I think the port types are magical in mig, or else are
defined in std_types.defs using weird mig syntaxes never otherwise used.

The only meaning of any mach_port_*_t type is what kind of argument passing
convention you get for the RPC stubs and what type this corresponds to in
the RPC message.  mach_port_copy_send_t means you pass a mach_port_t
argument to the stub and it is used with the semantics of
MACH_MSG_TYPE_COPY_SEND.

> Where are these files located?
> 
> #include <mach/std_types.defs>
> #include <mach/mach_types.defs>
> #include <device/device_types.defs>  

These are in the Mach sources, or installed by them in /include.
If you get the gnumach-devel debian package, that will have them.
If you look at the gnumach source tree, they are in include/mach.

> P.S. Is this the appropriate list for asking programming questions?

Yes.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]