This is the mail archive of the
cygwin-cvs@cygwin.com
mailing list for the Cygwin project.
src/winsup/cygwin ChangeLog cygserver_shm.cc c ...
- From: scottc at cygwin dot com
- To: cygwin-cvs at cygwin dot com
- Date: 3 Jul 2002 02:40:51 -0000
- Subject: src/winsup/cygwin ChangeLog cygserver_shm.cc c ...
CVSROOT: /cvs/src
Module name: src
Branch: cygwin_daemon
Changes by: scottc@sources.redhat.com 2002-07-02 19:40:51
Modified files:
winsup/cygwin : ChangeLog cygserver_shm.cc cygserver_ipc.h
cygserver_shm.h shm.cc
winsup/cygwin/include/sys: ipc.h shm.h
Log message:
* cygserver_shm.cc: Implement the ipcs(8) interfaces, IPC_INFO,
SHM_STAT and SHM_INFO.
(server_shmmgr::segment_t::sequence): New static field.
(server_shmmgr::segment_t::key): Remove field, use the new
ds.shm_perm.key field instead.
(server_shmmgr::segment_t::shmid): Remove field.
(server_shmmgr::segment_t::intid): New field.
(server_shmmgr::segment_t::segment_t): Use the `key' argument to
initialise `ds.shm_perm.key'. Change from using `shmid' to
`intid'.
(server_shmmgr::_shmseg_cnt): Renamed from `_shmid_cnt'.
(server_shmmgr::_intid_max): Renamed from `_shmid_max.
(server_shmmgr::shmat): Move the out arguments to the start of the
argument list. Rename the `pid' argument as `cygpid'. Add
tracing. Pass an intid to `find ()', not a shmid.
(server_shmmgr::shmctl): Add separate out arguments. Rename the
`pid' argument as `cygpid'. Add support for the ipcs(8)
interfaces. Add tracing. Pass an intid to `find ()', not a
shmid.
(server_shmmgr::shmdt): Rename the `pid' argument as `cygpid'.
Add tracing. Pass an intid to `find ()', not a shmid.
(server_shmmgr::shmget): Add a separate out arguments. Rename the
`pid' argument as `cygpid'. Add tracing.
(server_shmmgr::server_shmmgr): Update for new field names.
(server_shmmgr::find_by_key): Update for the new `ds.shm_perm.key'
field.
(server_shmmgr::find): Update to use the new `segment_t::intid'
field.
(server_shmmgr::new_segment): Rename the `pid' argument as
`cygpid'. Check that the requested size is within bounds. Handle
new error result from `new_segment (key, HANDLE)'.
(server_shmmgr::new_segment): Work with intids, not shmids. Check
that the new intid is within bounds. Update for new field names.
(server_shmmgr::delete_segment): Pass an intid to `find ()', not a
shmid. Update for new field names.
(client_request_shm::serve): Check that the incoming message
length is the size of the `_parameters.in' struct, not of the
whole in/out parameter union. Likewise, set the outgoing message
length to the size of the `_parameters.out' struct. Update for
the new server_shmmgr interfaces.
* include/sys/ipc.h (ipc_perm::key): New field.
* include/sys/shm.h (SHM_INFO): New constant.
* cygserver_ipc.h (IPCMNI): New constant.
(ipc_int2ext): Add `sequence' argument and munge this into the
external ipc id.
(ipc_ext2int_subsys): Unmunge the sequence number from the
external ipc id.
(ipc_ext2int): Ditto.
(ipc_inc_id): Remove.
(ipc_dec_id): Remove.
* cygserver_shm.h (SHMMAX): New constant.
(SHMMIN): Ditto.
(SHMMNI): Ditto.
(SHMSEG): Ditto.
(SHMALL): Ditto.
(client_request_shm::_parameters): Re-arrange as a union of two
separate structs, one for in arguments, the other for out.
(client_request_shm::shmid): Update for the new parameter layout.
(client_request_shm::ds): Ditto.
(client_request_shm::info): New method.
* shm.cc (client_shmmgr::_shmat_cnt): New static field.
(client_shmmgr::shmat): Add locking. Add tracing.
(client_shmmgr::shmctl): Update for ipcs(8) commands. Add
tracing. Add more argument checking.
(client_shmmgr::shmdt): Add locking. Add tracing. Update the new
`_shmat_cnt' field.
(client_shmmgr::shmget): Add tracing.
(client_shmmgr::fixup_shms_after_fork): Add tracing. Add
consistency checking.
(client_shmmgr::attach): Add more tracing.
(client_shmmgr::new_segment): Update the new `_shmat_cnt' field.
(client_request_shm::client_request_shm): Update for the new
parameter layout. Set the outgoing message length to the size of
the `_parameters.in' struct, not of the whole in/out parameter
union.
Patches:
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/ChangeLog.diff?cvsroot=src&only_with_tag=cygwin_daemon&r1=1.915.2.75&r2=1.915.2.76
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/cygserver_shm.cc.diff?cvsroot=src&only_with_tag=cygwin_daemon&r1=1.1.2.20&r2=1.1.2.21
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/cygserver_ipc.h.diff?cvsroot=src&only_with_tag=cygwin_daemon&r1=1.1.2.2&r2=1.1.2.3
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/cygserver_shm.h.diff?cvsroot=src&only_with_tag=cygwin_daemon&r1=1.1.2.13&r2=1.1.2.14
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/shm.cc.diff?cvsroot=src&only_with_tag=cygwin_daemon&r1=1.1.2.14&r2=1.1.2.15
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/include/sys/ipc.h.diff?cvsroot=src&only_with_tag=cygwin_daemon&r1=1.1.2.5&r2=1.1.2.6
http://sources.redhat.com/cgi-bin/cvsweb.cgi/src/winsup/cygwin/include/sys/shm.h.diff?cvsroot=src&only_with_tag=cygwin_daemon&r1=1.1.2.4&r2=1.1.2.5