1#ifndef _memory_object_default_server_
2#define _memory_object_default_server_
3
4/* Module memory_object_default */
5
6#include <string.h>
7#include <mach/ndr.h>
8#include <mach/boolean.h>
9#include <mach/kern_return.h>
10#include <mach/notify.h>
11#include <mach/mach_types.h>
12#include <mach/message.h>
13#include <mach/mig_errors.h>
14#include <mach/port.h>
15
16/* BEGIN MIG_STRNCPY_ZEROFILL CODE */
17
18#if defined(__has_include)
19#if __has_include(<mach/mig_strncpy_zerofill_support.h>)
20#ifndef USING_MIG_STRNCPY_ZEROFILL
21#define USING_MIG_STRNCPY_ZEROFILL
22#endif
23#ifndef __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
24#define __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__
25#ifdef __cplusplus
26extern "C" {
27#endif
28 extern int mig_strncpy_zerofill(char *dest, const char *src, int len) __attribute__((weak_import));
29#ifdef __cplusplus
30}
31#endif
32#endif /* __MIG_STRNCPY_ZEROFILL_FORWARD_TYPE_DECLS__ */
33#endif /* __has_include(<mach/mig_strncpy_zerofill_support.h>) */
34#endif /* __has_include */
35
36/* END MIG_STRNCPY_ZEROFILL CODE */
37
38
39#ifdef AUTOTEST
40#ifndef FUNCTION_PTR_T
41#define FUNCTION_PTR_T
42typedef void (*function_ptr_t)(mach_port_t, char *, mach_msg_type_number_t);
43typedef struct {
44 char *name;
45 function_ptr_t function;
46} function_table_entry;
47typedef function_table_entry *function_table_t;
48#endif /* FUNCTION_PTR_T */
49#endif /* AUTOTEST */
50
51#ifndef memory_object_default_MSG_COUNT
52#define memory_object_default_MSG_COUNT 1
53#endif /* memory_object_default_MSG_COUNT */
54
55#include <mach/std_types.h>
56#include <mach/mig.h>
57#include <ipc/ipc_voucher.h>
58#include <kern/ipc_kobject.h>
59#include <kern/ipc_tt.h>
60#include <kern/ipc_host.h>
61#include <kern/ipc_sync.h>
62#include <kern/ledger.h>
63#include <kern/processor.h>
64#include <kern/sync_lock.h>
65#include <kern/sync_sema.h>
66#include <vm/memory_object.h>
67#include <vm/vm_map.h>
68#include <kern/ipc_mig.h>
69#include <mach/mig.h>
70#include <mach/mach_types.h>
71
72#ifdef __BeforeMigServerHeader
73__BeforeMigServerHeader
74#endif /* __BeforeMigServerHeader */
75
76
77/* Routine memory_object_create */
78#ifdef mig_external
79mig_external
80#else
81extern
82#endif /* mig_external */
83kern_return_t default_pager_memory_object_create
84(
85 memory_object_default_t default_memory_manager,
86 vm_size_t new_memory_object_size,
87 memory_object_t *new_memory_object
88);
89
90#ifdef mig_external
91mig_external
92#else
93extern
94#endif /* mig_external */
95boolean_t memory_object_default_server(
96 mach_msg_header_t *InHeadP,
97 mach_msg_header_t *OutHeadP);
98
99#ifdef mig_external
100mig_external
101#else
102extern
103#endif /* mig_external */
104mig_routine_t memory_object_default_server_routine(
105 mach_msg_header_t *InHeadP);
106
107
108/* Description of this subsystem, for use in direct RPC */
109extern const struct default_pager_memory_object_default_subsystem {
110 mig_server_routine_t server; /* Server routine */
111 mach_msg_id_t start; /* Min routine number */
112 mach_msg_id_t end; /* Max routine number + 1 */
113 unsigned int maxsize; /* Max msg size */
114 vm_address_t reserved; /* Reserved */
115 struct routine_descriptor /*Array of routine descriptors */
116 routine[1];
117} default_pager_memory_object_default_subsystem;
118
119/* typedefs for all requests */
120
121#ifndef __Request__memory_object_default_subsystem__defined
122#define __Request__memory_object_default_subsystem__defined
123
124#ifdef __MigPackStructs
125#pragma pack(4)
126#endif
127 typedef struct {
128 mach_msg_header_t Head;
129 NDR_record_t NDR;
130 vm_size_t new_memory_object_size;
131 } __Request__memory_object_create_t __attribute__((unused));
132#ifdef __MigPackStructs
133#pragma pack()
134#endif
135#endif /* !__Request__memory_object_default_subsystem__defined */
136
137
138/* union of all requests */
139
140#ifndef __RequestUnion__default_pager_memory_object_default_subsystem__defined
141#define __RequestUnion__default_pager_memory_object_default_subsystem__defined
142union __RequestUnion__default_pager_memory_object_default_subsystem {
143 __Request__memory_object_create_t Request_memory_object_create;
144};
145#endif /* __RequestUnion__default_pager_memory_object_default_subsystem__defined */
146/* typedefs for all replies */
147
148#ifndef __Reply__memory_object_default_subsystem__defined
149#define __Reply__memory_object_default_subsystem__defined
150
151#ifdef __MigPackStructs
152#pragma pack(4)
153#endif
154 typedef struct {
155 mach_msg_header_t Head;
156 /* start of the kernel processed data */
157 mach_msg_body_t msgh_body;
158 mach_msg_port_descriptor_t new_memory_object;
159 /* end of the kernel processed data */
160 } __Reply__memory_object_create_t __attribute__((unused));
161#ifdef __MigPackStructs
162#pragma pack()
163#endif
164#endif /* !__Reply__memory_object_default_subsystem__defined */
165
166
167/* union of all replies */
168
169#ifndef __ReplyUnion__default_pager_memory_object_default_subsystem__defined
170#define __ReplyUnion__default_pager_memory_object_default_subsystem__defined
171union __ReplyUnion__default_pager_memory_object_default_subsystem {
172 __Reply__memory_object_create_t Reply_memory_object_create;
173};
174#endif /* __RequestUnion__default_pager_memory_object_default_subsystem__defined */
175
176#ifndef subsystem_to_name_map_memory_object_default
177#define subsystem_to_name_map_memory_object_default \
178 { "memory_object_create", 2250 }
179#endif
180
181#ifdef __AfterMigServerHeader
182__AfterMigServerHeader
183#endif /* __AfterMigServerHeader */
184
185#endif /* _memory_object_default_server_ */
186