summaryrefslogtreecommitdiff
path: root/winsup/cygwin/ChangeLog.branch
blob: d319f36efb1b80af1a46c74b1539810d0caf7c86 (plain)
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
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
2003-02-13  Christopher Faylor  <cgf@redhat.com>

	Reorganize includes throughout so that path.h comes before fhandler.h.
	Eliminate path_conv arguments from fhandler functions which take them,
	throughout.
	Use get_name() and get_win32_name() consistently throughout for
	fhandler objects.
	Use build_fh_* functions throughout, where appropriate.
	* fhandler.h (fhandler_base): Store path_conv struct here.  Remove dev.
	* dtable.h (dtable::build_fhandler_*): Remove.
	(build_fh_dev): New.
	(build_fh_pc): New.
	(build_fh_name): New.
	* dtable.cc (build_fh_dev): New.
	(build_fh_pc): New.
	(build_fh_name): New.
	* fhandler.h (fhandler_base::set_name): Change argument.
	* fhandler.cc (fhandler_base::set_name): Just accept a path_conv
	argument.
	(executable_states): Move.
	* path.h (executable_state): Accept.
	* syscalls.cc (stat_worker): Make static.
	* winsup.h (stat_worker): Remove definition.

2003-01-28  Corinna Vinschen  <corinna@vinschen.de>

	* devices.gperf: Remove obsolete win32 device names.

2003-01-25  Christopher Faylor  <cgf@redhat.com>

	* Makefile.in (DLL_OFILES): Add fhandler_nodevice.o.
	* devices.gperf (device::parse): Just set devn to input if device not
	found -- nonexistent device will be caught later.
	* dtable.cc (dtable::build_fhandler): Build fhandler_nodevice type when
	unknown device.
	* fhandler.h (fhandler_nodevice): New class.
	(fhandler_union): Add fhandler_nodevice.
	* path.cc (path_conv::check): Always set device stuff if major/minor
	are specified.

2003-01-04  Christopher Faylor  <cgf@sourceware.org>

	* pinfo.cc (_pinfo::commune_send): Use myself->lock rather than just lock when
	leaving.

2003-01-04  Christopher Faylor  <cgf@sourceware.org>

	Replace is_fs_device with is_fs_special throughout.
	* Makefile.in (DLL_OFILES): Add fhandler_fifo.o.
	* devices.h (fh_devices): Renumber some minor numbers to fit in 8 bits.
	* dtable.cc (dtable::build_fhandler): Handle FH_FIFO.  Set errno to ENODEV if
	device not found.
	* dtable::find_fifo: Define new function.
	* dtable.h (dtable::find_fifo): Declare new function.
	* fhandler.cc (fhandler_base::device_access_denied): Fix O_RDONLY test.
	(fhandler_base::write): Use output file handle for writing.
	(fhandler_base::fstat): Use is_fs_special rather than is_fs_device.
	* fhandler.h (fhandler_base::is_fs_special): Rename from is_fs_device.
	(fhandler_pipe): Make private elements protected so that fhandler_fifo can use
	them too.
	(fhandler_pipe::create): New function derived from make_pipe.
	(fhandler_fifo): Add more needed elements.
	(fhandler_pty_master::slave): Add to track slave device.
	(fhandler_pty_master::get_unit): Define.
	* fhandler_tty.cc (fhandler_tty_master::init): Register slave device.
	(fhandler_pty_master::open): Ditto.
	(symlink_info::parse_device): Handle fifo specially.
	* pinfo.cc (_pinfo::commune_recv): Initial fifo implementation.
	(_pinfo::commune_send): Ditto.
	* pinfo.h (picom): Add PICOM_FIFO.
	* pipe.cc (fhandler_pipe::close): Close input handle here specifically.
	(fhandler_pipe::create): Rename from make_pipe.  Create fhandlers rather than
	fds.
	(pipe): Use fhandler_pipe::create to create pipe.
	(_pipe): Ditto.
	* syscalls.cc (mknod): Accommodate fifos.

2003-01-04  Christopher Faylor  <cgf@sourceware.org>

	* fhandler_tty.cc (fhandler_tty_slave::get_unit): Fix test for tty unit number
	based on whether this is just a /dev/tty or a /dev/ttyN.

2003-01-02  Christopher Faylor  <cgf@sourceware.org>

	* dtable.h (dtable::in_vfork_cleanup): New function.  True if vfork cleanup
	needed.
	* dtable.cc (dtable::vfork_parent_restore): Remove assertion.
	* pipe.cc (fhandler_pipe::close): Don't close read_state during fork_fixup
	since it wasn't inherited.

2003-01-01  Christopher Faylor  <cgf@sourceware.org>

	* devices.h (_devtype_t): Eliminate.
	(_mode_t): New typedef.
	(device::mode): Replace type.
	* fhandler.h (fhandler_base::device_access_denied): Declare new function.
	* fhandler.cc (fhandler_base::device_access_denied): Define new function.
	* fhandler_disk_file.cc (fhandler_base::fstat_helper): Just copy mode directly
	from dev.mode to st_mode if it is a disk device.
	* path.cc (path_conv::check): Set device mode from sym mode.
	(symlink_worker): Let "exists" check happen when file is attempted to be
	opened, or not, in the case of creating a device.
	(symlink_info::parse_device): Change device type argument to device mode
	argument.
	(mknod_worker): New function.
	(chmod_device): Ditto.
	(chmod): Use chmod_device to set protection if it is an fs device.
	(mknod): Use mknod_worker to actually create the device.  Don't take any
	special action with the protection since it is now implicit.

2003-01-01  Christopher Faylor  <cgf@sourceware.org>

	* passwd.cc (getpwuid_r32): Revert previous change.

2003-01-01  Christopher Faylor  <cgf@sourceware.org>

	* sysconf.cc (sysconf): Return arbitrary values for _SC_GETGR_R_SIZE_MAX,
	_SC_LOGIN_NAME_MAX, _SC_GETPW_R_SIZE_MAX.
	* passwd.cc (getpwuid_r32): Add uid/gid fields to size check calculation.
	* exceptions.cc (events_init): Display name of mutex on failure.
	* windows.cc (setitimer): Return ENOSYS on invalid argument.

2002-12-28  Christopher Faylor  <cgf@sourceware.org>

	* cygwin-gperf: New file.
	* Makefile.in: Use cygwin-gperf script to build devices.cc.
	* configure.in: Remove some comments.
	* configure: Regenerate.
	* devices.gperf: Remove max unit determination from FH_TTY.  Add /dev/kmem.
	Add /dev/fifo.  Add /dev/rawdrive.  Remove specific "const device *"
	declarations since they are now autogenerated.
	(device::parse): Treat FH_TTY specially.  Move logic for determining real tty
	device to separate function.
	(device::init): Reduce to nothing.
	(device::parse): New function taking different arguments.
	(device::parse): Ditto.
	(device::tty_to_real_device): New function.
	* devices.h (struct device): Define above new functions.
	(device::dev_on_fs): New element.
	(device::setfs): New function.
	(device::isfs): Ditto.
	* dtable.cc (dtable::build_fhandler): Treat FH_TTY specially.
	* fhandler.cc (fhandler_base::set_name): Make special determination for
	non-disk-resident devices.
	* fhandler.h (fhandler_base::isdevice): Renamed from 'is_device'.
	(fhandler_disk_file::isdevice): Ditto.
	(fhandler_base::is_auto_device): New function.
	(fhandler_base::is_fs_device): New function.
	(fhandler_tty_slave::get_unit): Declare.
	(fhandler_disk_file::readdir): Take special .lnk consideration for devices as
	well as symlinks.
	* fhandler_tty.cc: Use get_unit () rather than dev.minor throughout.
	(fhandler_tty_slave::get_unit): Define new function.
	* path.cc (symlink_info::major): New element.
	(symlink_info::major): Ditto.
	(symlink_info::devtype): Ditto.
	(path_conv::check): Handle devices detected by symlink_info::check.
	(win32_device_name): Eliminate special FH_TTY handling.
	(symlink): Move bulk of procesing to symlink_worker.
	(symlink_worker): New function.  Handles devices.
	(symlink_info::parse_device): Parse info from potential device file into
	symlink_info elements.
	(symlink_info::check): If contents of .lnk file begin with a ':' then treat the
	file as a device file.
	* path.h (isdevice): Renamed from is_device.
	(is_auto_device): New function.
	(is_fs_device): Ditto.
	* syscalls.cc (chown_worker): Allow setting of ownership for on-disk devices.
	(chmod): Ditto.
	(mknod): Implement.
	* winsup.h (symlink_worker): Declare.

2002-12-28  Christopher Faylor  <cgf@sourceware.org>

	Eliminate device number argument from fhandler constructors throughout.

2002-12-28  Christopher Faylor  <cgf@sourceware.org>

	Eliminate unit argument and special unit fields from fhandler classes and
	constructors throughout.
	* fhandler_mem.cc (fhandler_dev_mem::fhandler_dev_mem): Make decisions based on
	specific device type rather than unit number.
	* fhandler_random.cc (fhandler_dev_random::write): Ditto.
	(fhandler_dev_random::read): Ditto.
	* fhandler_socket.cc (fhandler_socket::set_connect_secret): Set device type to
	"urandom" after construction of entropy_source.
	* path.cc (windows_devices_names): Remove.

2002-12-27  Christopher Faylor  <cgf@sourceware.org>

	* Makefile.in: Add devices.gperf.
	* devices.h: New file.
	* devices.gperf: Ditto.

2002-12-27  Christopher Faylor  <cgf@sourceware.org>

	Introduce device class to cygwin throughout.  Rename FH_DISK to FH_FS
	throughout.
	* dcrt0.cc (dll_crt0_1): Initialize device globals via device::init.
	* dtable.cc (dtable::init_std_file_from_handle): Use device numbers rather than
	names when they are known.  Should speed up process startup slightly.
	(dtable::build_fhandler_from_name): Pass path_conv device to build_fhandler.
	(dtable::build_fhandler): Accept device argument rather than separate
	device/unit arguments.
	(dtable::build_fhandler): Ditto.  Separate switch statement by devices which
	take units and those which don't.  Build unix/win32 names from device if
	required.
	(dtable::dup_worker): Reflect changes to build_fhandler arguments.
	* dtable.h (dtable::build_fhandler): Ditto.
	* fhandler.cc (fhandler_base::set_name): Eliminate unit argument.  Use get_unit
	to derive unit.
	* fhandler.h: Separate FH device defines into devices.h include.  Define
	is_slow as appropriate for each fhandler_class.
	(fhandler_base::dev): New element.
	(fhandler_base::fhandler_base): Eliminate unit argument.
	(fhandler_base::get_device): Return device number.
	(fhandler_base::get_major): Return device major number.
	(fhandler_base::get_minor): Return device minor number.
	(fhandler_base::get_unit): Ditto.
	(fhandler_base::get_native_name): Return device format field.
	(fhandler_fifo): New class.
	(select_stuff::device_specific): Remove array.
	(select_stuff::device_specific_pipe): New class element.
	(select_stuff::device_specific_socket): New class element.
	(select_stuff::device_specific_serial): New class element.
	(select_stuff::select_stuff): Initialize new elements.
	* fhandler_disk_file.cc (fhandler_cygdrive::fhandler_cygdrive): Remove unit
	initialization.
	* fhandler_tty.cc (fhandler_tty_master::init_console): Use "console_dev" global
	to initialize captive console used by tty master.
	* mmap.cc (mmap_record::devtype_): Remove.
	(mmap_record::dev): New.
	(mmap_record::mmap_record): Use dev.
	(mmap_record::get_device): Implement via dev.
	* net.cc (fdsock): Use socket_dev global to initialize socket fhandler.
	* path.cc (path_conv::check): Accommodate new path_conv::dev element.
	(get_devn): Eliminate.
	(get_raw_device_number): Ditto.
	(get_device_number): Ditto.
	(win32_device_name): Accept dev argument.  Use it.  Use device::parse to derive
	potential device name.
	(mount_info::conv_to_win32_path): Accept dev argument.  Use it.
	* path.h (path_conv::devn): Eliminate.
	(path_conv::unit): Ditto.
	(path_conv::dev): Declare.
	(path_conv::path_conv): Don't initialize deleted members.
	(path_conv::is_device): Implement via dev element.
	(path_conv::get_devn): Ditto.
	(path_conv::get_unitn): Ditto.
	* pipe.cc (make_pipe): Use pipe[rw]_dev in fhandler construction.
	* select.cc: Use new device_specific_* select class elements
	* shared_info.h (CURR_MOUNT_MAGIC): Update.
	(mount_info::conv_to_win32_path): Reflect new arguments.
	* syscalls.cc (fstat64): Just use get_device() without interpretation for
	st_dev element.
	(stat_worker): Ditto.
	* tty.cc (create_tty_master): Use ttym_dev in fhandler constructor.
	(tty::common_init): Check for tty major device number rather than FH_TTYM.