diff options
author | Thomas Bushnell <thomas@gnu.org> | 1997-04-14 20:29:05 +0000 |
---|---|---|
committer | Thomas Bushnell <thomas@gnu.org> | 1997-04-14 20:29:05 +0000 |
commit | a646a7a564d263b503692fb007bac6a512571793 (patch) | |
tree | bd598587a1f4267e917fa046a5a75f1ff17f2865 /mig/utils.h | |
parent | 30b32d2ccbf95436b642e6208d6829dcf68981fa (diff) |
Baseline.
Diffstat (limited to 'mig/utils.h')
-rw-r--r-- | mig/utils.h | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/mig/utils.h b/mig/utils.h new file mode 100644 index 0000000..3a4c832 --- /dev/null +++ b/mig/utils.h @@ -0,0 +1,76 @@ +/* + * Mach Operating System + * Copyright (c) 1991,1990 Carnegie Mellon University + * All Rights Reserved. + * + * Permission to use, copy, modify and distribute this software and its + * documentation is hereby granted, provided that both the copyright + * notice and this permission notice appear in all copies of the + * software, derivative works or modified versions, and any portions + * thereof, and that both notices appear in supporting documentation. + * + * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS + * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR + * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE. + * + * Carnegie Mellon requests users of this software to return to + * + * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU + * School of Computer Science + * Carnegie Mellon University + * Pittsburgh PA 15213-3890 + * + * any improvements or extensions that they make and grant Carnegie the + * rights to redistribute these changes. + */ + +#ifndef _UTILS_H +#define _UTILS_H + +/* stuff used by more than one of header.c, user.c, server.c */ + +typedef void write_list_fn_t(FILE *file, const argument_t *arg); + +extern void WriteImport(FILE *file, const_string_t filename); +extern void WriteRCSDecl(FILE *file, identifier_t name, const_string_t rcs); +extern void WriteBogusDefines(FILE *file); + +extern void WriteList(FILE *file, const argument_t *args, write_list_fn_t *func, + u_int mask, const char *between, const char *after); + +extern void WriteReverseList(FILE *file, const argument_t *args, + write_list_fn_t *func, u_int mask, + const char *between, const char *after); + +/* good as arguments to WriteList */ +extern write_list_fn_t WriteNameDecl; +extern write_list_fn_t WriteUserVarDecl; +extern write_list_fn_t WriteServerVarDecl; +extern write_list_fn_t WriteTypeDeclIn; +extern write_list_fn_t WriteTypeDeclOut; +extern write_list_fn_t WriteCheckDecl; + +extern const char *ReturnTypeStr(const routine_t *rt); + +extern const char *FetchUserType(const ipc_type_t *it); +extern const char *FetchServerType(const ipc_type_t *it); +extern void WriteFieldDeclPrim(FILE *file, const argument_t *arg, + const char *(*tfunc)(const ipc_type_t *it)); + +extern void WriteStructDecl(FILE *file, const argument_t *args, + write_list_fn_t *func, u_int mask, + const char *name); + +extern void WriteStaticDecl(FILE *file, const ipc_type_t *it, + dealloc_t dealloc, boolean_t longform, + boolean_t inname, identifier_t name); + +extern void WriteCopyType(FILE *file, const ipc_type_t *it, + const char *left, const char *right, ...); + +extern void WritePackMsgType(FILE *file, const ipc_type_t *it, + dealloc_t dealloc, boolean_t longform, + boolean_t inname, const char *left, + const char *right, ...); + +#endif /* _UTILS_H */ |