]>
git.saurik.com Git - apple/libc.git/blob - mach.subproj/headers.subproj/mig_errors.h
2344e84216935a9694d5cc519bd67d0c390f583d
2 * Copyright 1996 1995 by Open Software Foundation, Inc. 1997 1996 1995 1994 1993 1992 1991
5 * Permission to use, copy, modify, and distribute this software and
6 * its documentation for any purpose and without fee is hereby granted,
7 * provided that the above copyright notice appears in all copies and
8 * that both the copyright notice and this permission notice appear in
9 * supporting documentation.
11 * OSF DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE
12 * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
13 * FOR A PARTICULAR PURPOSE.
15 * IN NO EVENT SHALL OSF BE LIABLE FOR ANY SPECIAL, INDIRECT, OR
16 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
17 * LOSS OF USE, DATA OR PROFITS, WHETHER IN ACTION OF CONTRACT,
18 * NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
19 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
27 * Mach Operating System
28 * Copyright (c) 1991,1990,1989,1988,1987 Carnegie Mellon University
29 * All Rights Reserved.
31 * Permission to use, copy, modify and distribute this software and its
32 * documentation is hereby granted, provided that both the copyright
33 * notice and this permission notice appear in all copies of the
34 * software, derivative works or modified versions, and any portions
35 * thereof, and that both notices appear in supporting documentation.
37 * CARNEGIE MELLON ALLOWS FREE USE OF THIS SOFTWARE IN ITS "AS IS"
38 * CONDITION. CARNEGIE MELLON DISCLAIMS ANY LIABILITY OF ANY KIND FOR
39 * ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
41 * Carnegie Mellon requests users of this software to return to
43 * Software Distribution Coordinator or Software.Distribution@CS.CMU.EDU
44 * School of Computer Science
45 * Carnegie Mellon University
46 * Pittsburgh PA 15213-3890
48 * any improvements or extensions that they make and grant Carnegie Mellon
49 * the rights to redistribute these changes.
53 * Mach Interface Generator errors
57 #ifndef _MACH_MIG_ERRORS_H_
58 #define _MACH_MIG_ERRORS_H_
60 #include <mach/kern_return.h>
61 #include <mach/message.h>
63 #include <mach/vm_types.h>
66 * These error codes should be specified as system 4, subsytem 2.
67 * But alas backwards compatibility makes that impossible.
68 * The problem is old clients of new servers (eg, the kernel)
69 * which get strange large error codes when there is a Mig problem
70 * in the server. Unfortunately, the IPC system doesn't have
71 * the knowledge to convert the codes in this situation.
74 #define MIG_TYPE_ERROR -300 /* client type check failure */
75 #define MIG_REPLY_MISMATCH -301 /* wrong reply message ID */
76 #define MIG_REMOTE_ERROR -302 /* server detected error */
77 #define MIG_BAD_ID -303 /* bad request message ID */
78 #define MIG_BAD_ARGUMENTS -304 /* server type check failure */
79 #define MIG_NO_REPLY -305 /* no reply should be send */
80 #define MIG_EXCEPTION -306 /* server raised exception */
81 #define MIG_ARRAY_TOO_LARGE -307 /* array not large enough */
82 #define MIG_SERVER_DIED -308 /* server died */
83 #define MIG_TRAILER_ERROR -309 /* trailer has an unknown format */
88 mach_msg_header_t Head
;
90 kern_return_t RetCode
;
93 typedef struct mig_symtab
{
94 char *ms_routine_name
;
95 int ms_routine_number
;
96 void (*ms_routine
)(void); /* Since the functions in the
97 * symbol table have unknown
98 * signatures, this is the best
103 /* Client side reply port allocate */
104 extern mach_port_t
mig_get_reply_port(void);
106 /* Client side reply port deallocate */
107 extern void mig_dealloc_reply_port(mach_port_t reply_port
);
109 /* Client side reply port "deallocation" */
110 extern void mig_put_reply_port(mach_port_t reply_port
);
112 /* Allocate memory for out-of-stack mig structures */
113 extern char *mig_user_allocate(vm_size_t size
);
115 /* Deallocate memory used for out-of-stack mig structures */
116 extern void mig_user_deallocate(char *data
, vm_size_t size
);
118 /* Bounded string copy */
119 extern int mig_strncpy(
124 #endif /* _MACH_MIG_ERRORS_H_ */