|
|
1.1 root 1: /*
2: * Mach Operating System
3: * Copyright (c) 1991,1990,1989 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 "AS IS"
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 Mellon
24: * the rights to redistribute these changes.
25: */
26: /*
27: * File: device/device.defs
28: * Author: Douglas Orr
29: * Feb 10, 1988
30: * Abstract:
31: * Mach device support. Mach devices are accessed through
32: * block and character device interfaces to the kernel.
33: */
34:
35: subsystem
36: #if KERNEL_SERVER
37: KernelServer
38: #endif
39: device 2800;
40:
41: #include <mach/std_types.defs>
42: #include <mach/mach_types.defs>
43: #include <device/device_types.defs>
44:
45: serverprefix ds_;
46:
47: type reply_port_t = MACH_MSG_TYPE_MAKE_SEND_ONCE | polymorphic
48: ctype: mach_port_t;
49:
50: routine device_open(
51: master_port : mach_port_t;
52: sreplyport reply_port : reply_port_t;
53: mode : dev_mode_t;
54: name : dev_name_t;
55: out device : device_t
56: );
57:
58: routine device_close(
59: device : device_t
60: );
61:
62: routine device_write(
63: device : device_t;
64: sreplyport reply_port : reply_port_t;
65: in mode : dev_mode_t;
66: in recnum : recnum_t;
67: in data : io_buf_ptr_t;
68: out bytes_written : int
69: );
70:
71: routine device_write_inband(
72: device : device_t;
73: sreplyport reply_port : reply_port_t;
74: in mode : dev_mode_t;
75: in recnum : recnum_t;
76: in data : io_buf_ptr_inband_t;
77: out bytes_written : int
78: );
79:
80: routine device_read(
81: device : device_t;
82: sreplyport reply_port : reply_port_t;
83: in mode : dev_mode_t;
84: in recnum : recnum_t;
85: in bytes_wanted : int;
86: out data : io_buf_ptr_t
87: );
88:
89: routine device_read_inband(
90: device : device_t;
91: sreplyport reply_port : reply_port_t;
92: in mode : dev_mode_t;
93: in recnum : recnum_t;
94: in bytes_wanted : int;
95: out data : io_buf_ptr_inband_t
96: );
97:
98: skip; /* obsolete device_set_status */
99: skip; /* obsolete device_get_status */
100: skip; /* obsolete device_set_filter */
101:
102: routine device_map(
103: device : device_t;
104: in prot : vm_prot_t;
105: in offset : vm_offset_t;
106: in size : vm_size_t;
107: out pager : memory_object_t;
108: in unmap : int
109: );
110:
111: routine device_set_status(
112: device : device_t;
113: in flavor : dev_flavor_t;
114: in status : dev_status_t
115: );
116:
117: routine device_get_status(
118: device : device_t;
119: in flavor : dev_flavor_t;
120: out status : dev_status_t, CountInOut
121: );
122:
123: routine device_set_filter(
124: device : device_t;
125: in receive_port : mach_port_send_t;
126: in priority : int;
127: in filter : filter_array_t
128: );
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.