1 2007-02-22 Corinna Vinschen <corinna@vinschen.de>
3 * Makefile.in (OBJS): Drop transport_sockets.o.
4 * sysv_shm.cc (shmget_allocate_segment): Remove spurious cast.
5 * transport.cc: Don't include transport_sockets.h.
6 (create_server_transport): Always create transport_layer_pipes.
7 * transport_sockets.cc: Remove.
8 * transport_sockets.h: Remove.
10 2006-05-24 Christopher Faylor <cgf@timesys.com>
12 * configure.in: Update to newer autoconf.
13 (thanks to Steve Ellcey)
14 * configure: Regenerate.
15 * aclocal.m4: New file.
17 2006-01-12 Corinna Vinschen <corinna@vinschen.de>
19 * wincap.cc: New file.
21 * Makefile.in: Accomodate having our own wincap implementation now.
23 2006-01-09 Corinna Vinschen <corinna@vinschen.de>
25 Check FreeBSD upstream changes and apply important patches.
26 * sysv_sem.cc (__semctl): Check copyin return value (from 1.76).
27 * sysv_shm.cc (shminit): Actually use the iterating variable in the
28 for loop when trying to avoid overflow (from 1.102).
30 2005-11-10 Corinna Vinschen <corinna@vinschen.de>
32 * bsd_helper.cc (securityinit): New function. Move initialization
33 of security related variables from ipcinit here.
34 * bsd_helper.h (securityinit): Add prototype.
35 * cygserver.cc (main): Call securityinit right after wincap.init.
37 2005-11-10 Corinna Vinschen <corinna@vinschen.de>
39 * bsd_log.cc (_vpanic): LOG_EMERG is overkill, use LOG_CRIT.
41 2005-11-09 Corinna Vinschen <corinna@vinschen.de>
43 * process.cc (process_cache::process): Fix maximum process condition.
45 2005-10-24 Corinna Vinschen <corinna@vinschen.de>
47 * README: Add description for new -p/--process-cache option.
48 * bsd_helper.cc (default_tun_check): Add kern.srv.process_cache_size
49 entry to tunable_params. Set max value of kern.srv.request_threads
51 * cygserver.cc (SERVER_VERSION): Set to 1.20.
52 (print_usage): Print usage of new parameter -p.
53 (main): Add process cache parameter handling. Accomodate new max
54 value of request threads.
55 * cygserver.conf: Add kern.srv.process_cache_size tunable parameter.
56 Accomodate new max value of kern.srv.request_threads.
57 * process.cc: Fix a comment.
58 (process_cache::process_cache): Add max process cache size parameter.
59 Change _cache_add_trigger to manual reset event.
60 (struct pcache_wait_t): New struct used as parameter to
62 (pcache_wait_thread): New thread function used for threaded process
64 (process_cache::wait_for_processes): Use threaded waiting if number
65 of processes to wait for is bigger than 62. Always check all processes
66 to avoid race under heavy load.
67 (process_cache::sync_wait_array): Remove useless assert. Reset
68 _cache_add_trigger right at the start since it's manual reset now.
69 Accomodate threaded waiting.
70 * process.h (process_cache::process_cache): Add max_procs parameter.
71 (process_cache::_max_process_count): New member.
72 (process_cache::_wait_array: Raise to allow up to 5 wait threads.
73 (process_cache::_process_array): Ditto.
75 2005-08-08 Christopher Faylor <cgf@timesys.com>
77 * cygserver.cc (main): Call wincap.init() earlier to avoid a NULL
80 2005-06-14 Corinna Vinschen <corinna@vinschen.de>
82 * sysv_sem.cc (semu_list): Define static to avoid gcc 4.x compiler
85 2005-04-08 Corinna Vinschen <corinna@vinschen.de>
87 * bsd_mutex.cc (msleep_cnt): Remove.
88 (msleep_max_cnt): Remove.
90 (class msleep_sync_array): New class to encapsulate msleep/wakeup
91 thread synchronization.
92 (msleep_sync): New object pointer.
93 (msleep_init): Initialize new msleep_sync object.
94 (_mutex): Just call msleep_sync->enter() and msleep_sync->leave() for
95 thread synchronization. Improve debug output a bit more.
96 (wakeup): Just call msleep_sync->wakeup().
97 (wakeup_all): Whitespace fix.
99 2005-04-06 Corinna Vinschen <corinna@vinschen.de>
101 * bsd_helper.cc (ipcexit_hookthread): Fix whitespace and handle leak.
102 * bsd_mutex.cc: Include stdlib.h, sys/msg.h and sys/sem.h.
103 (mtx_init): Initialize lock counter to 0.
104 (_mtx_lock): Increment and log mutex lock counter.
105 (mtx_owned): Add winpid argument. Return true only if mutex is
106 actually owned by process winpid.
107 (_mtx_assert): Add winpid argument accordingly.
108 (_mtx_unlock): Log owner and lock count.
109 (MSLEEP_MUTEX): Remove.
111 (MSLEEP_EVENT): Ditto.
112 (msleep_event_name): Ditto.
113 (msleep_cs): New global critical section.
114 (msleep_cnt): New global variable indicating msleep record usage.
115 (msleep_max_cnt): New global variable indicating msleep record size.
116 (msleep_arr): New global pointer to msleep records.
117 (msleep_init): Initialize msleep_cs. Allocate msleep_arr array.
118 (_msleep): Rewrite using new msleep_cs/msleep_arr based thread
119 synchronization. Don't be shy with debug output.
120 (wakeup): Rewrite using new msleep_cs/msleep_arr based thread
122 * bsd_mutex.h (struct mtx): Add lock counter for better debugging.
123 (mtx_owned): Declare with winpid argument.
124 (_mtx_assert): Ditto.
125 (mtx_assert): Define with winpid argument.
126 * cygserver.cc (version): Remove.
127 (SERVER_VERSION): New define, decoupling server version information
128 from source code control system.
129 (print_version): Simplify printing server version.
130 * process.cc (process::process): Fix wrong bracketing (and handle leak).
131 (process::~process): Only try to close _signal_arrived if valid.
132 * sysv_sem.cc: Include sys/smallprint.h.
133 (semundo_clear): Define with additional struct thread pointer argument.
134 Accomodate throughout.
135 (SEMUNDO_LOCKASSERT): Define with winpid argument. Accomodate
137 (struct sem_undo): Define un_proc as pid_t on Cygwin. Accomodate
139 (seminit): Improve debugging by adding the semid to the mutex name.
140 (semget): Correctly print key value as 64 bit hex value in debug
142 (semexit_myhook): Remove Cygwin specific unlocking of mutexes owned
143 by exiting process. Keep semaphore global lock throughout whole
144 function to avoid races.
145 * sysv_shm.cc (GIANT_REQUIRED): Define empty on Cygwin. We know that
148 2005-04-01 Corinna Vinschen <corinna@vinschen.de>
150 * bsd_mutex.cc (_msleep): Whitespace fix.
151 * process.cc (process::process): Handle invalid signal_arrived values
154 2004-12-30 Corinna Vinschen <corinna@vinschen.de>
156 * bsd_mutex.cc: Include limits.h.
157 (MSLEEP_MUTEX): New define for third parameter to msleep_event_name.
159 (MSLEEP_EVENT): Ditto.
160 (msleep_event_name): Add third parameter to allow multiple
161 synchronization objects per ident.
162 (_msleep): Implement new synchronization technique to make sure
163 that all threads have been woken up by a corresponding wakeup call.
166 2004-10-18 Corinna Vinschen <corinna@vinschen.de>
168 * sysv_sem.cc: Redefine offsetof to circumvent build problems with
171 2004-10-04 Corinna Vinschen <corinna@vinschen.de>
173 * bsd_mutex.cc (_msleep): Simplify event creation. Revert change from
174 2004-08-24. It should be unnecessary now.
175 * msg.cc (client_request_msg::serve): Release process critical
176 section as early as possible.
177 * sem.cc (client_request_sem::serve): Ditto.
178 * shm.cc (client_request_shm::serve): Ditto.
179 * process.cc: Use hold and release method calls instead of
180 EnterCriticalSection/LeaveCriticalSection calls throughout.
181 * process.h (_hold): Rename from hold. Take filename and linenumber
182 parameter for logging. Define matching hold macro.
185 2004-10-01 Corinna Vinschen <corinna@vinschen.de>
187 * sysv_sem.cc: Update to FreeBSD version 1.69.
188 1.68: Reduce the overhead of semop() by using the kernel stack
189 instead of malloc'd memory to store the operations array if it
190 is small enough to fit.
191 1.69: Adjust the number of processes waiting on a semaphore properly
192 if we're woken up in the middle of sleeping.
194 2004-09-23 Corinna Vinschen <corinna@vinschen.de>
196 * sysv_shm.cc (kern_shmat): Avoid compiler warning.
198 2004-09-21 Corinna Vinschen <corinna@vinschen.de>
200 * sysv_shm.cc (vm_object_reference): remove Cygwin specific define.
201 (vm_map_find): Ditto.
202 (vm_map_inherit): Ditto.
203 (kern_shmat): On Cygwin, take shmaddr just as is. Don't call vm
204 system calls on Cygwin. Add comment.
206 2004-09-15 Corinna Vinschen <corinna@vinschen.de>
208 Fix copyright throughout.
209 Eliminate use of _impure_ptr outside Cygwin.
210 * bsd_helper.cc: Include errno.h instead of cygerrno.h.
211 * bsd_mutex.cc : Ditto.
213 * cygserver.cc: Ditto.
214 * process.cc: Don't build functions inside Cygwin. Don't include
215 cygerrno.h. Don't set errno.
216 * transport_pipes.cc (SET_ERRNO): New define. Use througout.
217 * transport_sockets.cc (SET_ERRNO): Ditto.
220 2004-09-06 Corinna Vinschen <corinna@vinschen.de>
222 * bsd_mutex.cc (_msleep): Disable resetting event object for now.
224 2004-08-31 Corinna Vinschen <corinna@vinschen.de>
226 * sysv_shm.cc (kern_shmat): Add debug_printf's.
228 2004-08-24 Corinna Vinschen <corinna@vinschen.de>
230 * bsd_mutex.cc (_msleep): Release process object while waiting.
232 2004-08-03 Corinna Vinschen <corinna@vinschen.de>
234 * transport.cc (transport_layer_base::~transport_layer_base): Resurrect.
235 * transport.h (transport_layer_base::~transport_layer_base): Ditto.
237 2004-07-30 Corinna Vinschen <corinna@vinschen.de>
239 * bsd_mutex.cc (_msleep): Reset event object and close it before
240 entering mutex. Turn order of conditional for better readability.
242 2004-07-26 Corinna Vinschen <corinna@vinschen.de>
244 * cygserver.conf: Describe relation between shmmaxpgs and SHMMAX.
246 2004-07-20 Corinna Vinschen <corinna@vinschen.de>
248 * bsd_helper.cc: Whitespace fixes.
249 * bsd_mutex.cc: Ditto.
251 2004-07-19 Corinna Vinschen <corinna@vinschen.de>
253 * transport.cc (transport_layer_base::~transport_layer_base): Remove.
254 * transport.h (transport_layer_base::~transport_layer_base): Ditto.
256 2004-07-19 Corinna Vinschen <corinna@vinschen.de>
258 * bsd_mutex.cc (win_priority): Actually calculate p from priority.
260 2004-06-03 Corinna Vinschen <corinna@vinschen.de>
262 * shm.cc (shmget): Explicitely set td_retval[0] to -1 on error.
264 2004-03-30 Corinna Vinschen <corinna@vinschen.de>
266 * sysv_shm.cc (shmget): Allow to retrieve shared memory segments
267 by shmid when IPC_KEY_IS_SHMID is set.
269 2004-03-02 Corinna Vinschen <corinna@vinschen.de>
271 * sysv_sem.cc (semundo_adjust): Check for process id instead of
272 process struct pointer, which isn't fixed under Cygwin.
273 (semexit_myhook): Ditto. Adjust debug print statements to print
274 Cygwin and Windows PIDs instead of process pointer under Cygwin.
276 2004-02-07 Corinna Vinschen <corinna@vinschen.de>
278 * bsd_mutex.cc (win_priority): Move to msleep helper function section.
279 (set_priority): Ditto. Fix formatting.
280 (_msleep): Cleanup obj formatting. Rearrange obj order.
282 2004-02-06 Corinna Vinschen <corinna@vinschen.de>
284 * bsd_mutex.cc (_msleep): Handle PCATCH using signal_arrived event.
285 * client.cc: Include sigproc.h.
286 * msg.cc (client_request_msg::serve): Accomodate third parameter to
288 * sem.cc (client_request_sem::serve): Ditto.
289 * shm.cc (client_request_shm::serve): Ditto.
290 * process.cc (process::process): Duplicate signal_arrived into
291 Cygserver process space.
292 (process::~process): Close _signal_arrived handle.
293 (process_cache::process): Add signal_arrived handling.
294 * process.h (process::process): Add signal_arrived parameter.
295 (process:signal_arrived): New read accessor.
296 (process:_signal_arrived): New member.
297 (process_cache::process): Add signal_arrived parameter.
299 2004-01-16 Corinna Vinschen <corinna@vinschen.de>
301 * process.h (cleanup_routine::~cleanup_routine): Make pure virtual
302 function to avoid miscompilation with certain versions of gcc.
303 * process.cc (cleanup_routine::~cleanup_routine): Remove.
305 2003-12-26 Christopher Faylor <cgf@redhat.com>
307 * Makefile.in (CFLAGS, CXXFLAGS): Remove unneeded include.
308 (CYGWIN_LIB): Delete.
309 (cygserver.exe target): Add -L$(cygwin_build) to the link line to force
310 linker to use build tree version of the library. Remove specific
311 inclusion of libcygwin.a from the link line.
313 2003-12-16 Corinna Vinschen <corinna@vinschen.de>
315 * bsd_helper.cc (tunable_params): Add entries for kern.ipc.msgmnb and
316 kern.ipc.msgtql. Raise max value for kern.ipc.msgseg to 65535.
317 * cygserver.conf: Add kern.ipc.msgmnb and kern.ipc.msgtql.
318 * sysv_msg.cc (msginit): Add TUNABLE_INT_FETCH call for
319 kern.ipc.msgmnb and kern.ipc.msgtql.
321 2003-11-26 Corinna Vinschen <corinna@vinschen.de>
323 * cygserver.cc (main): Move call to ipcinit() up before installing
325 * sysv_sem.cc: Update to FreeBSD version 1.67.
326 (seminit): Initialize semaphore sequence numbers to 0.
328 2003-11-26 Corinna Vinschen <corinna@vinschen.de>
330 * Makefile.in (CYGWIN_LIB): Variable pointing to libcygwin.a in
331 the parallel cygwin dir.
332 (cygserver.exe): Depend on and link against $CYGWIN_LIB.
334 2003-11-25 Christopher Faylor <cgf@redhat.com>
336 * Makefile.in (CXXFLAGS): Remove duplicate options handled in
339 2003-11-22 Corinna Vinschen <corinna@vinschen.de>
341 * msg.cc (client_request_msg::serve): Add default case to msgop switch.
342 * sem.cc (client_request_sem::serve): Add default case to semop switch.
343 * shm.cc (client_request_shm::serve): Add default case to shmop switch.
345 2003-11-21 Corinna Vinschen <corinna@vinschen.de>
347 * Makefile.in (install): Explicitely create directories. Install
348 README to $(prefix)/share/doc/Cygwin.
351 2003-11-21 Corinna Vinschen <corinna@vinschen.de>
353 * cygserver.cc (print_usage): Fix scrambled output.
355 2003-11-20 Corinna Vinschen <corinna@vinschen.de>
357 * cygserver-config: Slightly modify printed message.
359 2003-11-20 Corinna Vinschen <corinna@vinschen.de>
361 * Makefile.in (install): Install cygserver-config script to bindir.
362 * cygserver-config: New script.
364 2003-11-19 Corinna Vinschen <corinna@vinschen.de>
366 Don't use safe_new but new throughout. Fix copyright dates
368 * Makefile.in: Accomodate all new files and name changes.
369 Add a *.d dependency.
371 (etcdir): Drop in favor of more appropriate sysconfdir definition.
373 (CXXFLAGS): Add -MMD flag. Add SYSCONFDIR definition.
375 (install): Add action items.
376 (libclean): New target.
378 * bsd_helper.cc: New file.
379 * bsd_helper.h: Ditto.
382 * bsd_mutex.cc: Ditto.
383 * bsd_mutex.h: Ditto.
384 * client.cc: Rearrange to build as less as possible if
386 (client_request::handle_request): Add Message Queue and Semaphore
388 * cygserver.cc: Rearrange to build as less as possible if
389 __INSIDE_CYGWIN__. Use new debug/log/panic logging functions.
390 (DEF_CONFIG_FILE): New definition for configuration file. Use
393 (__cygserver__printf): Remove.
394 (client_request_attach_tty::serve): Return error if impersonation
396 (print_usage): Pump up help message.
397 (print_version): Add output of default configuration file.
398 (main): Accommodate new options. Allow overwrite of threading options
399 from config file. Call several new initialization functions. Drop
400 printing dots. Don't define SIGHANDLE inline.
401 * cygserver.conf: New file.
402 * cygserver_process.h: Rename to process.h.
403 * cygserver_transport.h: Rename to transport.h.
404 * cygserver_transport_pipes.h: Rename to transport_pipes.h.
405 * cygserver_transport_sockets.h: Rename to transport_sockets.h.
409 * sysv_msg.cc: New file, derived from FreeBSD version 1.52.
410 * sysv_sem.cc: New file, derived from FreeBSD version 1.66.
411 * sysv_shm.cc: New file, derived from FreeBSD version 1.89.
412 * threaded_queue.cc: Rearrange to build as less as possible if
414 * transport.cc (transport_layer_base::impersonate_client): Define bool.
415 (transport_layer_base::revert_to_self): Ditto.
416 * transport.h (transport_layer_base::impersonate_client): Declare bool.
417 (transport_layer_base::revert_to_self): Ditto.
418 * transport_pipes.cc (transport_layer_pipes::transport_layer_pipes):
419 Don't call init_security.
420 (init_security): Remove.
421 (transport_layer_pipes::accept): Use global sec_all_nih.
422 (transport_layer_pipes::connect): Ditto.
423 (transport_layer_pipes::impersonate_client): Define bool.
424 (transport_layer_pipes::revert_to_self): Ditt.
425 * transport_pipes.h (transport_layer_pipes::impersonate_client): Declare
427 (transport_layer_pipes::revert_to_self): Ditto.
428 * woutsup.h: Include bsd compatibility headers.
429 (SIGHANDLE): Add definition.
430 (__cygserver__printf): Remove definition.
431 (__noop_printf): Ditto.
432 (debug_printf): Define using debug.
433 (syscall_printf): Define using log.
434 (system_printf): Ditto.
435 Drop all other _printf definitions.
437 2003-10-22 Corinna Vinschen <corinna@vinschen.de>
439 Accomodate moving cygserver header files from cygwin/include/cygwin
440 to here and cygwin dir.
441 * Makefile.in (EXEEXT): Drop as unused.
442 (EXEEXT_FOR_BUILD): Ditto.
443 (all): Don't build libcygserver.a.
444 * cygserver_process.h: Moved from cygwin/include/cygwin to here.
445 * cygserver_transport.h: Ditto.
446 * cygserver_transport_pipes.h: Ditto.
447 * cygserver_transport_sockets.h: Ditto.
448 * ipc.h: Moved to ../cygwin and renamed to cygserver_ipc.h.
449 * shm.h: Moved to ../cygwin and renamed to cygserver_shm.h.
451 2003-08-30 Christopher Faylor <cgf@redhat.com>
456 2003-08-30 Christopher Faylor <cgf@redhat.com>
458 * threaded_queue.h: New file.
460 2003-08-25 Christopher Faylor <cgf@redhat.com>
462 * Makefile.in: Build libcygserver.a.
463 * client.cc: Rename allow_daemon to allow_server.
465 2003-07-25 Christopher Faylor <cgf@redhat.com>
467 * configure.in: Use 'install-sh -c'.
468 * configure: Regenerate.
470 2003-07-25 Christopher Faylor <cgf@redhat.com>
472 * configure.in: Always use install-sh.
473 * configure: Regenerate.
475 2003-07-01 Christopher Faylor <cgf@redhat.com>
477 * Makefile.in (OBJS): Move some more files from cygwin directory.
478 * woutsup.h: Define _MT_SAFE.
480 2003-07-01 Christopher Faylor <cgf@redhat.com>
482 * configure.in: First pass.
483 * Makefile.in: Ditto.
484 * configure: Generate.