1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
|
1999-11-24 Roland McGrath <roland@baalperazim.frob.com>
* storeio.c (trivfs_modify_stat): Clear writable bits if open store is
readonly, not just if we got the --readonly switch.
1999-11-20 Roland McGrath <roland@baalperazim.frob.com>
* dev.c (dev_read, dev_write): In DEV->inhibit_cache case,
handle zero (i.e. unknown) block_size by treating it as 1.
Use shift and bitwise-and rather than multiply and modulus
for block size arithmetic, since it's a known power of two.
1999-11-14 Roland McGrath <roland@baalperazim.frob.com>
* io.c (trivfs_S_file_get_storage_info): Fail with EOPNOTSUPP when
there is no store open.
* storeio.c (check_open_hook): Don't check for D_NO_SUCH_DEVICE here.
Translation to ENXIO now done in libstore.
* dev.h (struct dev): New member `enforced'.
* storeio.c (enforce_store): New variable.
(options, parse_opt, trivfs_append_args): Grok new option
--enforced/-e to set enforce_store.
(check_open_hook): Set DEVICE->enforced from enforce_store.
* io.c (trivfs_S_file_get_storage_info): If DEV->enforced is set
and the store flags lack STORE_ENFORCED, then return STORAGE_OTHER.
1999-09-13 Roland McGrath <roland@baalperazim.frob.com>
* io.c: Reverted changes related to io_map_segment.
1999-09-07 Thomas Bushnell, BSG <tb@mit.edu>
* io.c (trivfs_S_io_map): Renamed to ...
(trivfs_S_io_map_segment): ... here, and accept parameter `index'.
1999-07-11 Roland McGrath <roland@baalperazim.frob.com>
* dev.c (dev_read: ensure_buf): Fix sloppy bugs in last change.
1999-07-09 Thomas Bushnell, BSG <tb@mit.edu>
* dev.c (dev_open): Use mmap instead of vm_allocate.
(dev_read): Likewise.
1999-07-10 Roland McGrath <roland@baalperazim.frob.com>
* dev.c: Add #include <sys/mman.h> for munmap decl.
* pager.c: Likewise.
1999-07-03 Thomas Bushnell, BSG <tb@mit.edu>
* dev.c (dev_buf_fill): Use munmap instead of vm_deallocate.
(dev_close): Likewise.
(dev_read): Likewise.
* pager.c (pager_write_page): Likewise.
1999-05-23 Roland McGrath <roland@baalperazim.frob.com>
* storeio.c (check_open_hook): Translate D_NO_SUCH_DEVICE to ENXIO.
1999-05-09 Mark Kettenis <kettenis@gnu.org>
* pager.c (dev_stop_paging): Do not try to count ports in
PAGER_PORT_BUCKET if it has not been created.
1999-04-30 Mark Kettenis <kettenis@gnu.org>
* storeio.c (trivfs_modify_stat): Do not assume that we have the
device open in the caculation of st_mode. If the device is not
open, only return S_IFCHR if inhibit_cache is set.
1999-01-31 Roland McGrath <roland@baalperazim.frob.com>
* storeio.c (trivfs_modify_stat): Return S_IFCHR if block size is 1.
* storeio.c (trivfs_modify_stat): Return S_IFCHR iff inhibit_cache
set, otherwsie S_IFBLK. For a block-addressed device, S_IFCHR means
"must do whole-block i/o".
1999-01-28 Roland McGrath <roland@baalperazim.frob.com>
* io.c (trivfs_S_file_syncfs): Fix inverted test.
Reported by OKUJI Yoshinori <okuji@kuicr.kyoto-u.ac.jp>.
1999-01-27 Roland McGrath <roland@baalperazim.frob.com>
* storeio.c (options): New option -c/--no-cache.
(inhibit_cache): New variable.
(parse_opt): Make -c set it.
(trivfs_append_args): Report --no-cache if set.
(check_open_hook): Pass inhibit_cache flag to dev_open.
* dev.h (struct dev): New member `inhibit_cache'.
(dev_open): Update decl.
* dev.c (dev_open): Take new arg inhibit_cache, store in new dev.
If set, don't initialize buf_offs, io_lock, pager, pager_lock.
(dev_read, dev_write): If DEV->inhibit_cache is set, allow only
whole-block i/o: EINVAL for non-whole-block attempts.
* pager.c (dev_get_memory_object): If DEV->inhibit_cache is set, don't
make our own pager; if store_map returns EOPNOTSUPP, so do we.
1998-10-20 Roland McGrath <roland@baalperazim.frob.com>
* dev.c (dev_buf_fill): Add braces to silence gcc warning.
1998-07-20 Roland McGrath <roland@baalperazim.frob.com>
* storeio.c (main): Fix return type to int, and use return.
Wed Aug 20 14:07:05 1997 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* pager.c (dev_get_memory_object): Deal with errors from
pager_create properly.
* pager.c (service_paging_requests): New args for
ports_manage_port_operations_multithread.
* storeio.c (main): Likewise.
1997-07-23 Miles Bader <miles@gnu.ai.mit.edu>
* io.c (trivfs_S_io_readable, trivfs_S_io_read, trivfs_S_io_map):
Return EBADF instead of EINVAL.
(trivfs_S_io_select): Don't bother returning EBADF.
1997-07-22 Miles Bader <miles@gnu.ai.mit.edu>
* io.c (trivfs_S_io_read): Return EINVAL instead of EBADF.
(trivfs_S_io_map): Return EINVAL if CRED cannot be read or written.
1997-07-21 Miles Bader <miles@gnu.ai.mit.edu>
* Makefile (HURDLIBS): Add iohelp.
1997-07-17 Miles Bader <miles@gnu.ai.mit.edu>
* io.c (trivfs_S_io_map): Pass PROT argument to dev_get_memory_object.
* pager.c (dev_get_memory_object): Add PROT arg. Use store_map.
* dev.h (dev_get_memory_object): Add PROT arg.
1997-07-16 Miles Bader <miles@gnu.ai.mit.edu>
* pager.c (pager_read_page): Initialize READ to 0.
* pager.c (dev_get_memory_object): Implement correctly.
(dev_stop_paging): Work entirely by flushing user pagers; don't kill pager.
(pager_clear_user_data): Zero our pointer to the pager.
* io.c (trivfs_S_io_map): Make sure there are enough references to
MEMOBJ for both read & write ports.
Wed Feb 19 21:42:45 1997 Miles Bader <miles@gnu.ai.mit.edu>
* storeio.c (fsys_port_class, root_port_class, port_bucket,
trivfs_protid_portclasses, trivfs_protid_nportclasses,
trivfs_cntl_portclasses, trivfs_cntl_nportclasses): Variables removed.
(main): Don't set or use port class/bucket variables, let
trivfs_startup do it.
Add FSYS variable.
(doc): Make an initialized array.
(parse_opt): New function (was nested in main).
(argp, argp_kids): New variables (were nested in main).
(trivfs_goaway): Get ROOT_PORT_CLASS from FSYS.
Fri Nov 15 17:54:10 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* storeio.c (trivfs_check_open_hook): New arg syntax.
(check_open_hook): Likewise.
Thu Oct 24 16:24:53 1996 Miles Bader <miles@gnu.ai.mit.edu>
* storeio.c (main): Use elements of type `struct argp_child' for KIDS.
Mon Oct 7 16:38:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
* io.c (trivfs_S_file_get_storage_info): If necessary to enforce
security, make a copy of STORE and inactivate it before returning.
Thu Sep 26 14:26:17 1996 Miles Bader <miles@gnu.ai.mit.edu>
* storeio.c (trivfs_S_file_check_access): Function removed (trivfs
default is now sufficient).
Tue Sep 24 15:52:04 1996 Miles Bader <miles@gnu.ai.mit.edu>
* storeio.c (trivfs_S_file_check_access): New function.
(check_open_hook): Return EROFS if O_WRITE on a readonly device.
Mon Sep 23 17:21:23 1996 Miles Bader <miles@gnu.ai.mit.edu>
* storeio.c (trivfs_append_args): Make ARGZ_LEN of type `size_t *'.
Narrow scope of BUF.
<argz.h>: New include.
Thu Sep 19 18:12:48 1996 Miles Bader <miles@gnu.ai.mit.edu>
* storeio.c (trivfs_append_args): New function.
Wed Sep 18 15:16:27 1996 Miles Bader <miles@gnu.ai.mit.edu>
* io.c (trivfs_S_io_read, trivfs_S_io_write): Use void * buffers.
* open.h (open_read, open_write): Likewise.
* open.c (open_read, open_write): Likewise.
* dev.h (struct dev, dev_read, dev_write): Likewise.
* dev.c (dev_buf_fill, dev_read, dev_write): Likewise.
* pager.c (pager_read_page): Cast BUF into void ** for dev_read.
* storeio.c (main): Use STORE_PARAMS variable to get result from
parsing STORE_ARGP.
* dev.c (dev_open): Remove CLASSES argument to store_parsed_open.
Thu Sep 19 17:18:11 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* Makefile (HURDLIBS): New variable.
(storeio): Deleted special dependencies.
Fri Sep 13 11:05:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
* storeio.c (argp_program_version): New variable.
<version.h>: New include.
Tue Sep 10 17:13:55 1996 Miles Bader <miles@gnu.ai.mit.edu>
* dev.c (dev_rw): Return EINVAL instead of EIO for too-large offsets.
* dev.c (dev_open, dev_close): Remove ifdef'd-out code for allocating
DEV's buffer with valloc; other things depend on it being vm_allocated.
* io.c (trivfs_S_file_get_storage_info): Use store_return.
|