Wed Nov 23 00:28:19 1994  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>

	* demuxer.c (pager_demuxer): Call
	_pager_seqnos_memory_object_server, not
	seqnos_memory_object_server.

Tue Nov  8 14:15:01 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* lock-object.c (_pager_lock_object): Hammer SYNC to zero for now;
	there's some deadlock bug in noticing when the sync finishes.

Tue Aug 30 17:55:34 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* data-return.c: Include <assert.h>.
	(_pager_seqnos_memory_object_data_return): Use return correctly.

Mon Aug 29 17:30:52 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* priv.h (PM_INIT): New pagemap bit.
	* data-return.c (_pager_do_write-request): Set PM_INIT for
	affected pages.  New var `omitdata' hold a bitmap of the
	pages that we are not actually writing.  Set accordingly
	while looking through pagemap before starting I/O.  Don't 
	actually call I/O on these pages or frob the page map with them
	later.

	* data-return.c (_pager_seqnos_memory_object_data_return): Split
	into two functions; _pager_do_write_request does the real work
	now.

	* object-create.c: New file.
	* data-init.c: New file.

Fri Jul 22 11:54:05 1994  Michael I Bushnell  <mib@geech.gnu.ai.mit.edu>

	* Makefile: Rewritten to use new scheme.
	* data-request.c: Include "memory_object_S.h" instead of 
	"memory_object.h".
	* data-return.c: Likewise.
	* data-unlock.c: Likewise.
	* lock-completed: Likewise.
	* stubs.c: Likewise.
	* object-init.c: Likewise.
	* demuxer.c: Likewise.
	* object-terminate.c: Likewise.

Tue Jul  5 14:14:17 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* Makefile (TAGSHDRS): New variable.

Wed Jun  1 11:41:24 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* pager-attr.c (pager_change_attributes): Return immediately
	if we are already in the requested state.

	* lock-completed.c (_pager_seqnos_memory_object_lock_completed): 
	Call ports_done_with_port before returning to free reference
	created by ports_check_port_type.
	* chg-compl.c (_pager_seqnos_memory_object_change_completed): 
	Likewise.

	* seqnos.c (_pager_release_seqno): New second arg SEQNO.
	Set p->seqno here.  All callers changed.
	(_pager_wait_for_seqno): Don't set p->seqno here; then it 
	might get released before we actually call _pager_release_seqno.
	* priv.h (_pager_release_seqno): Declare new second arg.

	* priv.h (KERNEL_INIT_RACE): New compilation option.  All the
	changes in this block are conditionalized by this macro.
	* priv.h (struct pager): New members init_head and init_tail.
	(struct pending_init): New type.
	* object-init.c (_pager_seqnos_memory_object_init): If the object
	is not ready for init, then queue the init for later processing.
	* object-terminate.c (_pager_seqnos_memory_object_terminate): If
	there is a pending init, return it here.  
	* no-senders.c (pager_clean): Destroy all pending inits here.

	* object-terminate.c (_pager_free_structure): Don't unlock
	interlock or free the seqno here.
	(_pager_seqnos_memory_object_terminate): Unlock interlock and
	free seqno after calling _pager_free_structure.  
	* no-senders.c (pager_clean): Unlock interlock after calling
	_pager_free_structure.  Don't free seqno here at all.

Tue May 24 15:25:54 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* data-return.c (_pager_seqnos_memory_object_data_return): New
	vars NPAGES, I, and PAGERRS.  Rename var PM_ENTRY to be
	PM_ENTRIES.  Deal with multiple-page data_return calls by dealing
	with multiple pagemap slots and calling pager_write_page multiple
	times.

	* data-return.c (_pager_seqnos_memory_object_data_return): Fix
	printf messages; include length in bogus length messages.

	*data-unlock (_pager_seqnos_memory_object_data_unlock): Likewise.

Mon May 23 13:06:31 1994  Michael I Bushnell  (mib@churchy.gnu.ai.mit.edu)

	* data-request.c (_pager_seqnos_memory_object_data_request):
	Report length in bogus arg messages; terminate messages with
	newlines.

	* chg-compl.c: Include <stdio.h>.

	* priv.h (struct pager [may_cache, copy_strategy]):  New members.
	* pager.h (pager_create_pager): Added new args MAY_CACHE and
	COPY_STRATEGY.
	(pager_report_attributes): Deleted declaration.
	* object-init.c (_pager_seqnos_memory_object_init): Set attributes
	from values in P rather than by calling pager_report_attributes.
	* pager-attr.c (pager_change_attributes): Don't panic if the
	pager isn't yet initialized by the kernel; record the provided
	values in may_cache and copy_strategy.

	* pager-attr.c: Spelling fix.
	Include <assert.h>.
	* Makefile (COBJS): Added pager-attr.o.

Fri May 20 15:41:12 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* lock-completed.c (_pager_seqnos_memory_object_lock_completed): 
	Delete unneeded variable wakeup.  Break out of loop as soon
	as we find the right record.  Call condition_broadcast only
	if we need bother.

	* pager.h (pager_change_attributes, pager_report_attributes):
	New declarations.
	* priv.h (struct attribute_request): New structure.
	(struct pager [attribute_requests]): New member.
	* pager-create.c (pager_create): Initialize new member.
	* object-init.c (_pager_seqnos_memory_object_init): Call
	pager_report_attributes for correct args to memory_object_ready.
	* pager-attr.c: New file.
	* object-terminate.c (_pager_free_structure): Wakeup pending
	pager_change_attribute requests.
	* stubs.c (_pager_seqnos_memory_object_change_completed): Deleted
	function. 
	* chg-compl.c: New file.
	* Makefile (COBJS): Added chg-compl.o.

Thu May  5 07:49:21 1994  Roland McGrath  (roland@churchy.gnu.ai.mit.edu)

	* stubs.c (_pager_seqnos_memory_object_supply_completed): Change
	RESULT arg to type kern_return_t; error_t is not compatible.

	* demuxer.c (pager_demuxer): Declare seqnos_memory_object_server.

	* stubs.c, lock-completed.c: Changed return type of all RPC server
	functions to kern_return_t.  error_t is not compatible with the
	declarations in the mig-generated header files.

	* Makefile: Change uses of $(headers) to $(includedir).

Tue Apr 26 15:08:57 1994  Michael I Bushnell  (mib@geech.gnu.ai.mit.edu)

	* object-init.c (_pager_seqnos_memory_object_init): Only check
	for inits of active objects AFTER waiting for seqno; otherwise we
	could race against a prior terminate.

