|
|
1.1 root 1: /*
2: * Mach Operating System
3: * Copyright (c) 1991,1990 Carnegie Mellon University
4: * All Rights Reserved.
5: *
6: * Permission to use, copy, modify and distribute this software and its
7: * documentation is hereby granted, provided that both the copyright
8: * notice and this permission notice appear in all copies of the
9: * software, derivative works or modified versions, and any portions
10: * thereof, and that both notices appear in supporting documentation.
11: *
12: * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS
13: * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
14: * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
15: *
16: * Carnegie Mellon requests users of this software to return to
17: *
18: * Software Distribution Coordinator or [email protected]
19: * School of Computer Science
20: * Carnegie Mellon University
21: * Pittsburgh PA 15213-3890
22: *
23: * any improvements or extensions that they make and grant Carnegie the
24: * rights to redistribute these changes.
25: */
26:
27: #ifndef _UTILS_H
28: #define _UTILS_H
29:
30: /* stuff used by more than one of header.c, user.c, server.c */
31:
32: typedef void write_list_fn_t(FILE *file, const argument_t *arg);
33:
34: extern void WriteImport(FILE *file, const_string_t filename);
35: extern void WriteRCSDecl(FILE *file, identifier_t name, const_string_t rcs);
36: extern void WriteBogusDefines(FILE *file);
37:
38: extern void WriteList(FILE *file, const argument_t *args, write_list_fn_t *func,
39: u_int mask, const char *between, const char *after);
40:
41: extern void WriteReverseList(FILE *file, const argument_t *args,
42: write_list_fn_t *func, u_int mask,
43: const char *between, const char *after);
44:
45: /* good as arguments to WriteList */
46: extern write_list_fn_t WriteNameDecl;
47: extern write_list_fn_t WriteUserVarDecl;
48: extern write_list_fn_t WriteServerVarDecl;
49: extern write_list_fn_t WriteTypeDeclIn;
50: extern write_list_fn_t WriteTypeDeclOut;
51: extern write_list_fn_t WriteCheckDecl;
52:
53: extern const char *ReturnTypeStr(const routine_t *rt);
54:
55: extern const char *FetchUserType(const ipc_type_t *it);
56: extern const char *FetchServerType(const ipc_type_t *it);
57: extern void WriteFieldDeclPrim(FILE *file, const argument_t *arg,
58: const char *(*tfunc)(const ipc_type_t *it));
59:
60: extern void WriteStructDecl(FILE *file, const argument_t *args,
61: write_list_fn_t *func, u_int mask,
62: const char *name);
63:
64: extern void WriteStaticDecl(FILE *file, const ipc_type_t *it,
65: dealloc_t dealloc, boolean_t longform,
66: boolean_t inname, identifier_t name);
67:
68: extern void WriteCopyType(FILE *file, const ipc_type_t *it,
69: const char *left, const char *right, ...);
70:
71: extern void WritePackMsgType(FILE *file, const ipc_type_t *it,
72: dealloc_t dealloc, boolean_t longform,
73: boolean_t inname, const char *left,
74: const char *right, ...);
75:
76: #endif /* _UTILS_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.