33 |
{ |
{ |
34 |
struct trivfs_protid *cred = ports_lookup_port |
struct trivfs_protid *cred = ports_lookup_port |
35 |
(0, port, trivfs_protid_portclasses[0]); |
(0, port, trivfs_protid_portclasses[0]); |
36 |
if (port == 0) |
if (!cred) |
37 |
return MIG_BAD_ID; |
return MIG_BAD_ID; |
38 |
error_t result = (cred->po->openmodes & mode) ? 0 : EACCES; |
error_t result = (cred->po->openmodes & mode) ? 0 : EACCES; |
39 |
ports_port_deref (cred); |
ports_port_deref (cred); |
53 |
default_pager_info (mach_port_t default_pager, default_pager_info_t *info) |
default_pager_info (mach_port_t default_pager, default_pager_info_t *info) |
54 |
{ |
{ |
55 |
return allowed (default_pager, O_READ) |
return allowed (default_pager, O_READ) |
56 |
?: default_pager_info (default_pager, info); |
?: default_pager_info (real_defpager, info); |
57 |
} |
} |
58 |
|
|
59 |
kern_return_t |
kern_return_t |
215 |
This translator should normally be set on " _SERVERS_DEFPAGER "."}; |
This translator should normally be set on " _SERVERS_DEFPAGER "."}; |
216 |
|
|
217 |
int |
int |
218 |
|
proxy_defpager_demuxer (mach_msg_header_t *inp, |
219 |
|
mach_msg_header_t *outp) |
220 |
|
{ |
221 |
|
extern int default_pager_server (mach_msg_header_t *, mach_msg_header_t *); |
222 |
|
|
223 |
|
return default_pager_server (inp, outp) |
224 |
|
|| trivfs_demuxer (inp, outp); |
225 |
|
} |
226 |
|
|
227 |
|
int |
228 |
main (int argc, char **argv) |
main (int argc, char **argv) |
229 |
{ |
{ |
230 |
error_t err; |
error_t err; |
258 |
error (4, err, "Contacting parent"); |
error (4, err, "Contacting parent"); |
259 |
|
|
260 |
/* Launch. */ |
/* Launch. */ |
261 |
ports_manage_port_operations_multithread (fsys->pi.bucket, trivfs_demuxer, |
ports_manage_port_operations_multithread (fsys->pi.bucket, |
262 |
|
proxy_defpager_demuxer, |
263 |
2 * 60 * 1000, 0, 0); |
2 * 60 * 1000, 0, 0); |
264 |
|
|
265 |
return 0; |
return 0; |