diff options
-rw-r--r-- | Makefrag.am | 1 | ||||
-rw-r--r-- | device/ds_routines.c | 4 | ||||
-rw-r--r-- | include/device/device.defs | 20 | ||||
-rw-r--r-- | include/device/notify.defs | 36 | ||||
-rw-r--r-- | include/device/notify.h | 2 | ||||
-rw-r--r-- | include/mach/experimental.defs | 38 | ||||
-rw-r--r-- | kern/ipc_kobject.c | 1 | ||||
-rw-r--r-- | vm/vm_user.c | 14 |
8 files changed, 56 insertions, 60 deletions
diff --git a/Makefrag.am b/Makefrag.am index ea612275..9307f7a5 100644 --- a/Makefrag.am +++ b/Makefrag.am @@ -363,7 +363,6 @@ include_device_HEADERS = \ include/device/device_types.h \ include/device/disk_status.h \ include/device/net_status.h \ - include/device/notify.defs \ include/device/notify.h \ include/device/tape_status.h \ include/device/tty_status.h diff --git a/device/ds_routines.c b/device/ds_routines.c index 1cc38f98..cc1b244b 100644 --- a/device/ds_routines.c +++ b/device/ds_routines.c @@ -322,7 +322,7 @@ ds_device_map (device_t dev, vm_prot_t prot, vm_offset_t offset, /* TODO: missing deregister support */ io_return_t -ds_device_intr_register (ipc_port_t master_port, int line, +experimental_device_intr_register (ipc_port_t master_port, int line, int id, int flags, ipc_port_t receive_port) { #ifdef MACH_XEN @@ -1843,7 +1843,7 @@ device_writev_trap (mach_device_t device, dev_mode_t mode, } kern_return_t -ds_device_intr_enable(ipc_port_t master_port, int line, char status) +experimental_device_intr_enable(ipc_port_t master_port, int line, char status) { #ifdef MACH_XEN return D_INVALID_OPERATION; diff --git a/include/device/device.defs b/include/device/device.defs index dca1be4e..409146f5 100644 --- a/include/device/device.defs +++ b/include/device/device.defs @@ -142,23 +142,3 @@ routine device_set_filter( in filter : filter_array_t ); -routine device_intr_register( - master_port : mach_port_t; - in line : int; - in id : int; - in flags : int; - in receive_port : mach_port_send_t - ); - -/* - * enable/disable the specified line. - */ -/* XXX: Naming a function taht can disable something "xxx_enable" is confusing. */ -/* Is the disable part actually used at all? AIUI, the kernel IRQ handler -should always disable the line; and the userspace driver only has to -reenable it, after acknowledging and handling the interrupt... -*/ -routine device_intr_enable( - master_port : mach_port_t; - line : int; - status : char); diff --git a/include/device/notify.defs b/include/device/notify.defs deleted file mode 100644 index ea374d26..00000000 --- a/include/device/notify.defs +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Mach Operating System - * Copyright (c) 1991,1990,1989 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 "AS IS" - * 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 Mellon - * the rights to redistribute these changes. - */ - -subsystem notify 100; - -#include <mach/std_types.defs> - -serverprefix do_; -serverdemux device_intr_notify_server; - -simpleroutine device_intr_notify( - notify : notify_port_t; - name : int); diff --git a/include/device/notify.h b/include/device/notify.h index b6907b03..91d518ca 100644 --- a/include/device/notify.h +++ b/include/device/notify.h @@ -29,6 +29,6 @@ typedef struct int line; } device_intr_notification_t; -#define DEVICE_INTR_NOTIFY 100 +#define DEVICE_INTR_NOTIFY 424242 #endif /* _MACH_DEVICE_NOTIFY_H_ */ diff --git a/include/mach/experimental.defs b/include/mach/experimental.defs index ddcbea5f..9a2f28db 100644 --- a/include/mach/experimental.defs +++ b/include/mach/experimental.defs @@ -13,3 +13,41 @@ subsystem serverprefix experimental_; /* This is free for experimenting RPCs, with no backward compatibility guarantees. */ + +type notify_port_t = MACH_MSG_TYPE_MOVE_SEND_ONCE + ctype: mach_port_t; + +skip; /*simpleroutine mach_intr_notify( + notify : notify_port_t; + name : int);*/ + +routine device_intr_register( + master_port : mach_port_t; + in line : int; + in id : int; + in flags : int; + in receive_port : mach_port_send_t + ); + +/* + * enable/disable the specified line. + */ +/* XXX: Naming a function taht can disable something "xxx_enable" is confusing. */ +/* Is the disable part actually used at all? AIUI, the kernel IRQ handler +should always disable the line; and the userspace driver only has to +reenable it, after acknowledging and handling the interrupt... +*/ +routine device_intr_enable( + master_port : mach_port_t; + line : int; + status : char); + +/* + * This routine is for compatibility with old userland drivers. + */ +routine vm_allocate_contiguous( + host_priv : host_priv_t; + target_task : vm_task_t; + out vaddr : vm_address_t; + out paddr : vm_address_t; + size : vm_size_t); diff --git a/kern/ipc_kobject.c b/kern/ipc_kobject.c index 5ced4037..c65458ba 100644 --- a/kern/ipc_kobject.c +++ b/kern/ipc_kobject.c @@ -160,6 +160,7 @@ ipc_kobject_server(request) * to perform the kernel function */ { + extern mig_routine_t experimental_server_routine(); check_simple_locks(); if ((routine = mach_server_routine(&request->ikm_header)) != 0 || (routine = mach_port_server_routine(&request->ikm_header)) != 0 diff --git a/vm/vm_user.c b/vm/vm_user.c index 4d5728c8..b13ba8dc 100644 --- a/vm/vm_user.c +++ b/vm/vm_user.c @@ -659,3 +659,17 @@ kern_return_t vm_allocate_contiguous( return KERN_SUCCESS; } + +kern_return_t experimental_vm_allocate_contiguous(host_priv, map, result_vaddr, result_paddr, size) + host_t host_priv; + vm_map_t map; + vm_address_t *result_vaddr; + vm_address_t *result_paddr; + vm_size_t size; +{ + rpc_phys_addr_t paddr; + kern_return_t ret; + ret = vm_allocate_contiguous(host_priv, map, result_vaddr, &paddr, size, 0, ~0ULL, 0); + *result_paddr = paddr; + return ret; +} |