🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

1 total messages Started by Jeffrey A Law Wed, 11 Nov 1992 15:07
ipc_input1111bug.c
#1370
Author: Jeffrey A Law
Date: Wed, 11 Nov 1992 15:07
1479 lines
41274 bytes
configuration i386-mach.

Compile with gcc-2.3.1 "-O" to make cc1 core dump:

typedef	unsigned int	vm_offset_t;
typedef	unsigned int	vm_size_t;
typedef	int		kern_return_t;
typedef int		boolean_t;
typedef unsigned int mach_port_t;
typedef mach_port_t *mach_port_array_t;
typedef unsigned int mach_port_right_t;
typedef unsigned int mach_port_type_t;
typedef mach_port_type_t *mach_port_type_array_t;
typedef unsigned int mach_port_urefs_t;
typedef int mach_port_delta_t;			 
typedef unsigned int mach_port_seqno_t;		 
typedef unsigned int mach_port_mscount_t;	 
typedef unsigned int mach_port_msgcount_t;	 
typedef unsigned int mach_port_rights_t;	 
typedef struct mach_port_status {
	mach_port_t		mps_pset;	 
	mach_port_seqno_t	mps_seqno;	 
	mach_port_mscount_t	mps_mscount;	 
	mach_port_msgcount_t	mps_qlimit;	 
	mach_port_msgcount_t	mps_msgcount;	 
	mach_port_rights_t	mps_sorights;	 
	boolean_t		mps_srights;	 
	boolean_t		mps_pdrequest;	 
	boolean_t		mps_nsrequest;	 
} mach_port_status_t;
typedef struct old_mach_port_status {
	mach_port_t		mps_pset;	 
	mach_port_mscount_t	mps_mscount;	 
	mach_port_msgcount_t	mps_qlimit;	 
	mach_port_msgcount_t	mps_msgcount;	 
	mach_port_rights_t	mps_sorights;	 
	boolean_t		mps_srights;	 
	boolean_t		mps_pdrequest;	 
	boolean_t		mps_nsrequest;	 
} old_mach_port_status_t;
typedef int 		port_name_t;		 
typedef port_name_t	port_set_name_t;	 
typedef port_name_t	*port_name_array_t;
typedef int		port_type_t;		 
typedef port_type_t	*port_type_array_t;
typedef	port_name_t	port_t;			 
typedef	port_t		port_rcv_t;		 
typedef	port_t		port_own_t;		 
typedef	port_t		port_all_t;		 
typedef	port_t		*port_array_t;
typedef unsigned int mach_msg_timeout_t;
typedef unsigned int mach_msg_bits_t;
typedef	unsigned int mach_msg_size_t;
typedef unsigned int mach_msg_seqno_t;
typedef int mach_msg_id_t;
typedef	struct {
    mach_msg_bits_t	msgh_bits;
    mach_msg_size_t	msgh_size;
    mach_port_t		msgh_remote_port;
    mach_port_t		msgh_local_port;
    mach_port_seqno_t	msgh_seqno;
    mach_msg_id_t	msgh_id;
} mach_msg_header_t;
typedef unsigned int mach_msg_type_name_t;
typedef unsigned int mach_msg_type_size_t;
typedef unsigned int mach_msg_type_number_t;
typedef struct  {
    unsigned int	msgt_name : 8,
			msgt_size : 8,
			msgt_number : 12,
			msgt_inline : 1,
			msgt_longform : 1,
			msgt_deallocate : 1,
			msgt_unused : 1;
} mach_msg_type_t;
typedef	struct	{
    mach_msg_type_t	msgtl_header;
    unsigned short	msgtl_name;
    unsigned short	msgtl_size;
    unsigned int	msgtl_number;
} mach_msg_type_long_t;
typedef int mach_msg_option_t;
typedef kern_return_t mach_msg_return_t;
extern mach_msg_return_t
mach_msg_trap
   (mach_msg_header_t *msg,
    mach_msg_option_t option,
    mach_msg_size_t send_size,
    mach_msg_size_t rcv_size,
    mach_port_t rcv_name,
    mach_msg_timeout_t timeout,
    mach_port_t notify);
extern mach_msg_return_t
mach_msg
   (mach_msg_header_t *msg,
    mach_msg_option_t option,
    mach_msg_size_t send_size,
    mach_msg_size_t rcv_size,
    mach_port_t rcv_name,
    mach_msg_timeout_t timeout,
    mach_port_t notify);
typedef	unsigned int	msg_size_t;
typedef	struct {
		unsigned int	msg_unused : 24,
				msg_simple : 8;
		msg_size_t	msg_size;
		int		msg_type;
		port_t		msg_local_port;
		port_t		msg_remote_port;
		int		msg_id;
} msg_header_t;
typedef struct  {
	unsigned int	msg_type_name : 8,		 
			msg_type_size : 8,		 
			msg_type_number : 12,		 
			msg_type_inline : 1,		 
			msg_type_longform : 1,		 
			msg_type_deallocate : 1,	 
			msg_type_unused : 1;
} msg_type_t;
typedef	struct	{
	msg_type_t	msg_type_header;
	unsigned short	msg_type_long_name;
	unsigned short	msg_type_long_size;
	unsigned int	msg_type_long_number;
} msg_type_long_t;
typedef	unsigned int	msg_timeout_t;
typedef	int		msg_option_t;
typedef	int		msg_return_t;
msg_return_t	msg_send(
	msg_header_t	*header,
	msg_option_t	option,
	msg_timeout_t	timeout);
msg_return_t	msg_receive(
	msg_header_t	*header,
	msg_option_t	option,
	msg_timeout_t	timeout);
msg_return_t	msg_rpc(
	msg_header_t	*header,	 
	msg_option_t	option,
	msg_size_t	rcv_size,
	msg_timeout_t	send_timeout,
	msg_timeout_t	rcv_timeout);
msg_return_t	msg_send_trap(
	msg_header_t	*header,
	msg_option_t	option,
	msg_size_t	send_size,
	msg_timeout_t	timeout);
msg_return_t	msg_receive_trap(
	msg_header_t	*header,
	msg_option_t	option,
	msg_size_t	rcv_size,
	port_name_t	rcv_name,
	msg_timeout_t	timeout);
msg_return_t	msg_rpc_trap(
	msg_header_t	*header,	 
	msg_option_t	option,
	msg_size_t	send_size,
	msg_size_t	rcv_size,
	msg_timeout_t	send_timeout,
	msg_timeout_t	rcv_timeout);
extern void Assert();
int	master_cpu;	 
extern vm_offset_t kalloc();
extern vm_offset_t kget();
extern void kfree();
extern void kalloc_init();
typedef struct ipc_marequest {
	struct ipc_space *imar_space;
	mach_port_t imar_name;
	struct ipc_port *imar_soright;
	struct ipc_marequest *imar_next;
} *ipc_marequest_t;
extern void
ipc_marequest_init();
extern unsigned int
ipc_marequest_info( );
extern mach_msg_return_t
ipc_marequest_create( 
);
extern void
ipc_marequest_cancel( );
extern void
ipc_marequest_rename( 
);
extern void
ipc_marequest_destroy( );
typedef int		vm_prot_t;
extern vm_size_t	page_size;	 
extern vm_size_t	page_mask;	 
extern int		page_shift;	 
extern vm_size_t	mem_size;	 
extern vm_offset_t	first_addr;	 
extern vm_offset_t	last_addr;	 
typedef	mach_port_t	memory_object_t;
typedef	mach_port_t	memory_object_control_t;
typedef	mach_port_t	memory_object_name_t;
typedef	int		memory_object_copy_strategy_t;
typedef	int		memory_object_return_t;
struct slock {
	int		lock_data;	 
};
typedef struct slock	simple_lock_data_t;
typedef struct slock	*simple_lock_t;
struct lock {
	unsigned int	read_count:16,	 
			want_upgrade:1,	 
			want_write:1,	 
			waiting:1,	 
			can_sleep:1,	 
			:0;
	char		*thread;	 
	int		recursion_depth; 
};
typedef struct lock	lock_data_t;
typedef struct lock	*lock_t;
extern void		lock_init();
extern void		lock_sleepable();
extern void		lock_write();
extern void		lock_read();
extern void		lock_done();
extern boolean_t	lock_read_to_write();
extern void		lock_write_to_read();
extern boolean_t	lock_try_write();
extern boolean_t	lock_try_read();
extern boolean_t	lock_try_read_to_write();
extern void		lock_set_recursive();
extern void		lock_clear_recursive();
struct queue_entry {
	struct queue_entry	*next;		 
	struct queue_entry	*prev;		 
};
typedef struct queue_entry	*queue_t;
typedef	struct queue_entry	queue_head_t;
typedef	struct queue_entry	queue_chain_t;
typedef	struct queue_entry	*queue_entry_t;
void		enqueue_head();
void		enqueue_tail();
queue_entry_t	dequeue_head();
queue_entry_t	dequeue_tail();
void		remqueue();
struct mpqueue_head {
	struct queue_entry	head;		 
	struct slock		lock;		 
};
typedef struct mpqueue_head	mpqueue_head_t;
typedef struct vm_external {
    	int		existence_size;	 
	char		*existence_map;	 
	int		existence_count; 
} *vm_external_t;
typedef int	vm_external_state_t;
extern void		vm_external_module_initialize();
extern vm_external_t	vm_external_create();	 
extern void vm_external_destroy();		 
extern void		vm_external_state_set(); 
extern vm_external_state_t _vm_external_state_get();
typedef struct xmm_obj *	pager_request_t;
struct vm_object {
	queue_chain_t		memq;		 
	vm_size_t		size;		 
	short			ref_count;	 
	short			resident_page_count;
	struct vm_object	*copy;		 
	struct vm_object	*shadow;	 
	vm_offset_t		shadow_offset;	 
	struct ipc_port		*pager;		 
	vm_offset_t		paging_offset;	 
	pager_request_t		pager_request;	 
	struct ipc_port		*pager_name;	 
	memory_object_copy_strategy_t
				copy_strategy;	 
	unsigned int
				absent_count;	 
	unsigned int  
				all_wanted;	 
	unsigned int
				paging_in_progress:16,
	 		pager_created:1, 
	 		pager_initialized:1, 
	 		pager_ready:1,	 
	 		can_persist:1,	 
	 		internal:1,	 
	 		temporary:1,	 
	 		alive:1,	 
	 		lock_in_progress : 1,
	 		lock_restart : 1,
	 		use_old_pageout : 1,
	 		use_shared_copy : 1, 
	 		shadowed: 1;	 
	queue_chain_t		cached_list;	 
	vm_offset_t		last_alloc;	 
	vm_external_t		existence_info;
};
typedef struct vm_object	*vm_object_t;
extern
vm_object_t	kernel_object;		 
extern void		vm_object_bootstrap();
extern void		vm_object_init();
extern void		vm_object_terminate();
extern vm_object_t	vm_object_allocate();
extern void		vm_object_reference();
extern void		vm_object_deallocate();
extern void		vm_object_pmap_protect();
extern void		vm_object_pmap_remove();
extern void		vm_object_page_remove();
extern void		vm_object_shadow();
extern void		vm_object_collapse();
extern vm_object_t	vm_object_lookup();
extern vm_object_t	vm_object_lookup_name();
extern struct ipc_port	*vm_object_name();
extern void		vm_object_remove();
extern boolean_t	vm_object_copy_temporary();
extern kern_return_t	vm_object_copy_strategically();
extern kern_return_t	vm_object_copy_slowly();
extern vm_object_t	vm_object_enter();
extern void		vm_object_pager_create();
extern void		vm_object_destroy();
extern void		vm_object_print();
extern vm_object_t	vm_object_request_object();
typedef struct zone {
	int		count;		 
	vm_offset_t	free_elements;
	vm_size_t	cur_size;	 
	vm_size_t	max_size;	 
	vm_size_t	elem_size;	 
	vm_size_t	alloc_size;	 
	boolean_t	doing_alloc;	 
	char		*zone_name;	 
	unsigned int
	 	pageable :1,	 
	 	sleepable :1,	 
	  exhaustible :1,	 
	 	collectable :1,	 
	 	expandable :1;	 
	lock_data_t	complex_lock;	 
	struct zone *	next_zone;	 
} *zone_t;
extern void		zone_gc();
extern void		consider_zone_gc();
extern vm_offset_t	zalloc();
extern vm_offset_t	zget();
extern zone_t		zinit();
extern void		zfree();
extern void		zchange();
extern void		zcollectable();
extern vm_offset_t	zdata;
extern vm_offset_t	zdata_size;
extern void		zcram();
extern void		zone_bootstrap();
extern void		zone_init();
extern void	sched_init();
extern void	assert_wait();
extern void	clear_wait();
extern void	thread_sleep();
extern void	thread_wakeup();		 
extern void	thread_wakeup_prim();
extern boolean_t thread_invoke();
extern void	thread_block();
extern void	thread_run();
extern void	thread_set_timeout();
extern void	thread_setrun();
extern void	thread_dispatch();
extern void	thread_continue();
extern void	thread_go();
extern void	thread_will_wait();
extern void	thread_will_wait_with_timeout();
extern boolean_t thread_handoff();
extern void	recompute_priorities();
extern void	thread_bootstrap_return();
extern void	thread_exception_return();
extern void	thread_syscall_return();
extern struct thread *switch_context();
extern void	stack_handoff();
extern void	stack_alloc();
extern boolean_t stack_alloc_try();
extern void	stack_free();
struct vm_page {
	queue_chain_t	pageq;		 
	queue_chain_t	listq;		 
	struct vm_page	*next;		 
	vm_object_t	object;		 
	vm_offset_t	offset;		 
	unsigned int	wire_count:16,	 
	 	inactive:1,	 
			active:1,	 
			laundry:1,	 
			free:1,		 
			reference:1,	 
			:0;		 
	unsigned int
	 	busy:1,		 
			wanted:1,	 
			tabled:1,	 
			fictitious:1,	 
			private:1,	 
			absent:1,	 
			error:1,	 
			dirty:1,	 
			precious:1,	 
			overwriting:1,	 
			:0;
	vm_offset_t	phys_addr;	 
	vm_prot_t	page_lock;	 
	vm_prot_t	unlock_request;	 
};
typedef struct vm_page	*vm_page_t;
extern
vm_page_t	vm_page_queue_free;	 
extern
vm_page_t	vm_page_queue_fictitious;	 
extern
queue_head_t	vm_page_queue_active;	 
extern
queue_head_t	vm_page_queue_inactive;	 
extern
vm_offset_t	first_phys_addr;	 
extern
vm_offset_t	last_phys_addr;		 
extern
int	vm_page_free_count;	 
extern
int	vm_page_fictitious_count; 
extern
int	vm_page_active_count;	 
extern
int	vm_page_inactive_count;	 
extern
int	vm_page_wire_count;	 
extern
int	vm_page_free_target;	 
extern
int	vm_page_free_min;	 
extern
int	vm_page_inactive_target; 
extern
int	vm_page_free_reserved;	 
extern
int	vm_page_laundry_count;	 
extern unsigned int	vm_page_free_wanted;
extern vm_offset_t	vm_page_fictitious_addr;
extern void		vm_page_bootstrap();
extern void		vm_page_module_init();
extern void		vm_page_create();
extern vm_page_t	vm_page_lookup();
extern vm_page_t	vm_page_grab_fictitious();
extern void		vm_page_release_fictitious();
extern boolean_t	vm_page_convert();
extern void		vm_page_more_fictitious();
extern vm_page_t	vm_page_grab();
extern void		vm_page_release();
extern void		vm_page_wait();
extern vm_page_t	vm_page_alloc();
extern void		vm_page_attach();
extern void		vm_page_init();
extern void		vm_page_free();
extern void		vm_page_activate();
extern void		vm_page_deactivate();
extern void		vm_page_rename();
extern void		vm_page_insert();
extern void		vm_page_remove();
extern void		vm_page_zero_fill();
extern void		vm_page_copy();
extern void		vm_page_wire();
extern void		vm_page_unwire();
extern void		vm_set_page_size();
extern unsigned int	vm_page_info();
extern void vm_page_check_queues();
typedef int		vm_inherit_t;	 
struct vm_statistics {
	long	pagesize;		 
	long	free_count;		 
	long	active_count;		 
	long	inactive_count;		 
	long	wire_count;		 
	long	zero_fill_count;	 
	long	reactivations;		 
	long	pageins;		 
	long	pageouts;		 
	long	faults;			 
	long	cow_faults;		 
	long	lookups;		 
	long	hits;			 
};
typedef struct vm_statistics	*vm_statistics_t;
typedef struct vm_statistics	vm_statistics_data_t;
extern vm_statistics_data_t	vm_stat;
struct pmap_statistics {
	long		resident_count;	 
	long		wired_count;	 
	long		pageins;	 
};
typedef struct pmap_statistics	*pmap_statistics_t;
typedef struct pmap_statistics	pmap_statistics_data_t;
typedef unsigned int	pt_entry_t;
typedef	volatile long	cpu_set;	 
struct pmap {
	pt_entry_t	*dirbase;	 
	int		ref_count;	 
	struct pmap_statistics	stats;	 
	cpu_set		cpus_using;	 
};
typedef struct pmap	*pmap_t;
pt_entry_t	*pmap_pte();
extern vm_offset_t	pmap_steal_memory();	 
extern unsigned int	pmap_free_pages();	 
extern void		pmap_startup();		 
extern void		pmap_init();		 
extern boolean_t	pmap_next_page();	 
extern void		pmap_virtual_space();	 
extern pmap_t		pmap_create();		 
extern void		pmap_reference();	 
extern void		pmap_destroy();		 
extern void		pmap_enter();		 
extern void		pmap_remove();		 
extern void		pmap_protect();		 
extern void		pmap_activate();	 
extern void		pmap_deactivate();	 
extern void		pmap_page_protect();	 
extern void		pmap_clear_reference();	 
extern boolean_t	pmap_is_referenced();	 
extern void		pmap_clear_modify();	 
extern boolean_t	pmap_is_modified();	 
extern void		pmap_statistics();	 
extern vm_offset_t	pmap_extract();		 
extern boolean_t	pmap_access();		 
extern void		pmap_collect();		 
extern void		pmap_change_wiring();	 
extern pmap_t	kernel_pmap;			 
typedef union vm_map_object {
	struct vm_object	*vm_object;	 
	struct vm_map		*sub_map;	 
} vm_map_object_t;
struct vm_map_links {
	struct vm_map_entry	*prev;		 
	struct vm_map_entry	*next;		 
	vm_offset_t		start;		 
	vm_offset_t		end;		 
};
struct vm_map_entry {
	struct vm_map_links	links;		 
	union vm_map_object	object;		 
	vm_offset_t		offset;		 
	unsigned int
	 		is_shared:1,	 
	 		is_sub_map:1,	 
	 		in_transition:1,  
	 		needs_wakeup:1,   
	 		needs_copy:1;	 
	vm_prot_t		protection;	 
	vm_prot_t		max_protection;	 
	vm_inherit_t		inheritance;	 
	unsigned short		wired_count;	 
	unsigned short		user_wired_count;  
};
typedef struct vm_map_entry	*vm_map_entry_t;
struct vm_map_header {
	struct vm_map_links	links;		 
	int			nentries;	 
	boolean_t		entries_pageable;
};
typedef struct vm_map {
	lock_data_t		lock;		 
	struct vm_map_header	hdr;		 
	pmap_t			pmap;		 
	vm_size_t		size;		 
	int			ref_count;	 
	vm_map_entry_t		hint;		 
	vm_map_entry_t		first_free;	 
	boolean_t		wait_for_space;	 
	boolean_t		wiring_required; 
	unsigned int		timestamp;	 
} *vm_map_t;
typedef struct vm_map_version {
	unsigned int	main_timestamp;
} vm_map_version_t;
typedef struct vm_map_copy {
	int			type;
	vm_offset_t		offset;
	vm_size_t		size;
	union {
	    struct vm_map_header	hdr;	 
	    struct {				 
	    	vm_object_t		object;
		vm_size_t		index;	 
	    } c_o;
	    struct {				 
		int			npages;
		boolean_t		pages_loose;
		kern_return_t		(*cont)();
		char			*cont_args;
		vm_page_t		page_list[8 ];
	    } c_p;
	} c_u;
} *vm_map_copy_t;
typedef	struct {
	vm_map_t	map;
	vm_offset_t	src_addr;
	vm_size_t	src_len;
	vm_offset_t	destroy_addr;
	vm_size_t	destroy_len;
	boolean_t	steal_pages;
}  vm_map_copyin_args_data_t, *vm_map_copyin_args_t;
extern vm_offset_t	kentry_data;
extern vm_offset_t	kentry_data_size;
extern int		kentry_count;
extern void		vm_map_init();		 
extern vm_map_t		vm_map_create();	 
extern vm_map_t		vm_map_fork();		 
extern void		vm_map_reference();	 
extern void		vm_map_deallocate();	 
extern kern_return_t	vm_map_enter();		 
extern kern_return_t	vm_map_find_entry();	 
extern kern_return_t	vm_map_remove();	 
extern kern_return_t	vm_map_protect();	 
extern kern_return_t	vm_map_inherit();	 
extern void		vm_map_print();		 
extern kern_return_t	vm_map_lookup();	 
extern boolean_t	vm_map_verify();	 
extern kern_return_t	vm_map_copyin_common();	 
extern kern_return_t	vm_map_copyin_page_list(); 
extern kern_return_t	vm_map_copyout();	 
extern kern_return_t	vm_map_copy_overwrite(); 
extern void		vm_map_copy_discard();	 
extern kern_return_t	vm_map_copy_discard_cont(); 
extern kern_return_t	vm_map_machine_attribute();
extern kern_return_t	vm_map_pageable_common();
extern vm_object_t	vm_submap_object;
typedef struct ipc_kmsg {
	struct ipc_kmsg *ikm_next, *ikm_prev;
	vm_size_t ikm_size;
	ipc_marequest_t ikm_marequest;
	vm_page_t ikm_page;
	vm_map_copy_t ikm_copy;
	unsigned long ikm_source_node;
	union {
		boolean_t ikmu_norma_acked;	 
		boolean_t ikmu_has_dest_right;	 
	} ikmu;
	mach_msg_header_t ikm_header;
} *ipc_kmsg_t;
extern ipc_kmsg_t ipc_kmsg_cache[1 ];
typedef unsigned int ast_t;
extern volatile ast_t need_ast[1 ];
extern void ast_taken();
struct run_queue {
	queue_head_t		runq[32			];	 
	int			low;		 
	int			count;		 
};
typedef struct run_queue	*run_queue_t;
extern struct run_queue	*rem_runq();
extern struct thread	*choose_thread();
extern queue_head_t	action_queue;	 
 ;
extern int		min_quantum;	 
struct shift {
	int	shift1;
	int	shift2;
};
typedef	struct shift	*shift_t, shift_data_t;
extern unsigned	sched_tick;
struct processor_set {
	struct	run_queue	runq;		 
	queue_head_t		idle_queue;	 
	int			idle_count;	 
	queue_head_t		processors;	 
	int			processor_count;	 
	boolean_t		empty;		 
	queue_head_t		tasks;		 
	int			task_count;	 
	queue_head_t		threads;	 
	int			thread_count;	 
	int			ref_count;	 
	queue_chain_t		all_psets;	 
	boolean_t		active;		 
	struct ipc_port	*	pset_self;	 
	struct ipc_port *	pset_name_self;	 
	int			max_priority;	 
	int			set_quantum;	 
	long			mach_factor;	 
	long			load_average;	 
	long			sched_load;	 
};
typedef	struct processor_set *processor_set_t;
extern struct processor_set	default_pset;
struct processor {
	struct run_queue runq;		 
	queue_chain_t	processor_queue;  
	int		state;		 
	struct thread	*next_thread;	 
	struct thread	*idle_thread;	 
	int		quantum;	 
	boolean_t	first_quantum;	 
	int		last_quantum;	 
	processor_set_t	processor_set;	 
	processor_set_t processor_set_next;	 
	queue_chain_t	processors;	 
	struct ipc_port *processor_self;	 
	int		slot_num;	 
};
typedef struct processor *processor_t;
extern struct processor	processor_array[1 ];
extern queue_head_t		all_psets;
extern int			all_psets_count;
 ;
extern processor_t	master_processor;
extern processor_t	processor_ptr[1 ];
typedef mach_port_t	*processor_array_t;
typedef mach_port_t	*processor_set_array_t;
typedef mach_port_t	*processor_set_name_array_t;
struct time_value {
	long	seconds;
	long	microseconds;
};
typedef	struct time_value	time_value_t;
typedef struct mapped_time_value {
	long seconds;
	long microseconds;
	long check_seconds;
} mapped_time_value_t;
typedef	vm_offset_t	eml_routine_t;
typedef struct eml_dispatch {
	int		ref_count;	 
	int 		disp_count; 	 
	int		disp_min;	 
	eml_routine_t	disp_vector[1];	 
} *eml_dispatch_t;
typedef vm_offset_t	*emulation_vector_t;  
struct task {
	int		ref_count;	 
	boolean_t	active;		 
	vm_map_t	map;		 
	queue_chain_t	pset_tasks;	 
	int		suspend_count;	 
	queue_head_t	thread_list;	 
	int		thread_count;	 
	processor_set_t	processor_set;	 
	boolean_t	may_assign;	 
	boolean_t	assign_active;	 
	int		user_stop_count;	 
	int		priority;		 
	time_value_t	total_user_time;
	time_value_t	total_system_time;
	boolean_t	task_profiled;   
	struct prof_data *profil_buffer; 
	struct ipc_port *itk_self;	 
	struct ipc_port *itk_sself;	 
	struct ipc_port *itk_exception;	 
	struct ipc_port *itk_bootstrap;	 
	struct ipc_port *itk_registered[4	];
	struct ipc_space *itk_space;
	struct 	eml_dispatch	*eml_dispatch;
	long		child_node;	 
};
typedef struct task *task_t;
typedef	mach_port_t *task_array_t;
extern kern_return_t	task_create();
extern kern_return_t	task_terminate();
extern kern_return_t	task_suspend();
extern kern_return_t	task_resume();
extern kern_return_t	task_threads();
extern kern_return_t	task_ports();
extern kern_return_t	task_info();
extern kern_return_t	task_get_special_port();
extern kern_return_t	task_set_special_port();
extern kern_return_t	task_assign();
extern kern_return_t	task_assign_default();
extern void		task_init();
extern void		task_reference();
extern void		task_deallocate();
extern kern_return_t	task_hold();
extern kern_return_t	task_dowait();
extern kern_return_t	task_release();
extern kern_return_t	task_halt();
extern kern_return_t	task_suspend_nowait();
extern task_t		kernel_task_create();
extern task_t	kernel_task;
extern unsigned long elapsed_ticks;  
extern int	hz;		 
extern int	tick;		 
struct timer_elt {
	queue_chain_t	chain;		 
	int		(*fcn)();	 
	char *		param;		 
	unsigned long	ticks;		 
	int		set;		 
};
typedef	struct timer_elt	timer_elt_data_t;
typedef	struct timer_elt	*timer_elt_t;
extern void		set_timeout();
extern boolean_t	reset_timeout();
extern void		timeout();
extern boolean_t	untimeout();
struct timer {
	unsigned	low_bits;
	unsigned	high_bits;
	unsigned	high_bits_check;
	unsigned	tstamp;
};
typedef struct timer		timer_data_t;
typedef	struct timer		*timer_t;
extern timer_t		current_timer[1 ];
extern timer_data_t	kernel_timer[1 ];
struct timer_save {
	unsigned	low;
	unsigned	high;
};
typedef struct timer_save	timer_save_data_t, *timer_save_t;
extern void		timer_read();
extern void		thread_read_times();
extern unsigned		timer_delta();
struct i386_fp_save	{
	unsigned short	fp_control;	 
	unsigned short	fp_unused_1;
	unsigned short	fp_status;	 
	unsigned short	fp_unused_2;
	unsigned short	fp_tag;		 
	unsigned short	fp_unused_3;
	unsigned int	fp_eip;		 
	unsigned short	fp_cs;		 
	unsigned short	fp_opcode;	 
	unsigned int	fp_dp;		 
	unsigned short	fp_ds;		 
	unsigned short	fp_unused_4;
};
struct i386_fp_regs {
	unsigned short	fp_reg_word[5][8];
};
struct i386_tss {
	int		back_link;	 
	int		esp0;		 
	int		ss0;		 
	int		esp1;		 
	int		ss1;		 
	int		esp2;		 
	int		ss2;		 
	int		cr3;		 
	int		eip;
	int		eflags;
	int		eax;
	int		ecx;
	int		edx;
	int		ebx;
	int		esp;		 
	int		ebp;
	int		esi;
	int		edi;
	int		es;
	int		cs;
	int		ss;		 
	int		ds;
	int		fs;
	int		gs;
	int		ldt;		 
	unsigned short	trace_trap;	 
	unsigned short	io_bit_map_offset;
};
typedef	unsigned char	isa_iopb[((((0x3ff		+1)+(8)-1)/(8)) ) ];
struct iopb_tss {
	struct i386_tss	tss;		 
	isa_iopb	bitmap;		 
	unsigned int	barrier;	 
	queue_head_t	io_port_list;	 
	int		iopb_desc[2];	 
};
typedef	struct iopb_tss	*iopb_tss_t;
struct i386_saved_state {
	unsigned int	gs;
	unsigned int	fs;
	unsigned int	es;
	unsigned int	ds;
	unsigned int	edi;
	unsigned int	esi;
	unsigned int	ebp;
	unsigned int	cr2;		 
	unsigned int	ebx;
	unsigned int	edx;
	unsigned int	ecx;
	unsigned int	eax;
	unsigned int	trapno;
	unsigned int	err;
	unsigned int	eip;
	unsigned int	cs;
	unsigned int	efl;
	unsigned int	uesp;
	unsigned int	ss;
	struct v86_segs {
	    unsigned int v86_es;	 
	    unsigned int v86_ds;
	    unsigned int v86_fs;
	    unsigned int v86_gs;
	} v86_segs;
};
struct i386_exception_link {
	struct i386_saved_state *saved_state;
};
struct i386_kernel_state {
	int			k_ebx;	 
	int			k_esp;
	int			k_ebp;
	int			k_edi;
	int			k_esi;
	int			k_eip;
};
struct i386_fpsave_state {
	boolean_t		fp_valid;
	struct i386_fp_save	fp_save_state;
	struct i386_fp_regs	fp_regs;
};
struct v86_assist_state {
	vm_offset_t		int_table;
	unsigned short		int_count;
	unsigned short		flags;	 
};
struct i386_interrupt_state {
	int	es;
	int	ds;
	int	edx;
	int	ecx;
	int	eax;
	int	eip;
	int	cs;
	int	efl;
};
struct i386_machine_state {
	iopb_tss_t		io_tss;
	struct user_ldt	*	ldt;
	struct i386_fpsave_state *ifps;
	struct v86_assist_state	v86s;
};
typedef struct pcb {
	struct i386_interrupt_state iis[2];	 
	struct i386_saved_state iss;
	struct i386_machine_state ims;
} *pcb_t;
struct thread {
	queue_chain_t	links;		 
	run_queue_t	runq;		 
	task_t		task;		 
	queue_chain_t	thread_list;	 
	queue_chain_t	pset_threads;	 
	int		ref_count;	 
	pcb_t		pcb;		 
	vm_offset_t	kernel_stack;	 
	vm_offset_t	stack_privilege; 
	int		wait_event;	 
	int		suspend_count;	 
	kern_return_t	wait_result;	 
	boolean_t	wake_active;	 
	int		state;		 
	void		(*swap_func)();	 
	int		priority;	 
	int		max_priority;	 
	int		sched_pri;	 
	int		depress_priority;  
	unsigned int	cpu_usage;	 
	unsigned int	sched_usage;	 
	unsigned int	sched_stamp;	 
	vm_offset_t	recover;	 
	boolean_t	vm_privilege;	 
	int		user_stop_count;	 
	struct thread *ith_next, *ith_prev;
	mach_msg_return_t ith_state;
	union {
		mach_msg_size_t msize;		 
		struct ipc_kmsg *kmsg;		 
	} data;
	mach_port_seqno_t ith_seqno;		 
	struct ipc_kmsg_queue {
		struct ipc_kmsg *ikmq_base;
	} ith_messages;
	struct ipc_port *ith_self;	 
	struct ipc_port *ith_sself;	 
	struct ipc_port *ith_exception;	 
	struct ipc_port *ith_reply;	 
	mach_port_t ith_mig_reply;	 
	struct ipc_port *ith_rpc_reply;	 
	union {
		struct {
			mach_msg_header_t *msg;
			mach_msg_option_t option;
			mach_msg_size_t rcv_size;
			mach_msg_timeout_t timeout;
			mach_port_t notify;
			struct ipc_object *object;
			struct ipc_mqueue *mqueue;
		} receive;
		struct {
			struct ipc_port *port;
			int exc;
			int code;
			int subcode;
		} exception;
		char *other;		 
	} saved;
	timer_data_t	user_timer;	 
	timer_data_t	system_timer;	 
	timer_save_data_t user_timer_save;   
	timer_save_data_t system_timer_save;   
	unsigned int	cpu_delta;	 
	unsigned int	sched_delta;	 
	timer_elt_data_t timer;		 
	timer_elt_data_t depress_timer;	 
	boolean_t	thread_profiled; 
	boolean_t	thread_profiled_own;
	struct prof_data *profil_buffer; 
	boolean_t	active;		 
	int		ast;    	 
	processor_set_t	processor_set;	 
	processor_t	bound_processor;	 
};
typedef struct thread *thread_t;
typedef	mach_port_t *thread_array_t;
extern thread_t active_threads[1 ];		 
extern vm_offset_t active_stacks[1 ];	 
extern kern_return_t	thread_create();
extern kern_return_t	thread_terminate();
extern kern_return_t	thread_suspend();
extern kern_return_t	thread_resume();
extern kern_return_t	thread_abort();
extern kern_return_t	thread_get_state();
extern kern_return_t	thread_set_state();
extern kern_return_t	thread_get_special_port();
extern kern_return_t	thread_set_special_port();
extern kern_return_t	thread_info();
extern kern_return_t	thread_assign();
extern kern_return_t	thread_assign_default();
extern void		thread_init();
extern void		thread_reference();
extern void		thread_deallocate();
extern void		thread_hold();
extern kern_return_t	thread_dowait();
extern void		thread_release();
extern kern_return_t	thread_halt();
extern void		thread_halt_self();
extern void		thread_set_own_priority();
extern thread_t		kernel_thread();
extern void		reaper_thread();
typedef struct ipc_kmsg_queue *ipc_kmsg_queue_t;
extern void
ipc_kmsg_enqueue( );
extern ipc_kmsg_t
ipc_kmsg_dequeue( );
extern void
ipc_kmsg_rmqueue( );
extern ipc_kmsg_t
ipc_kmsg_queue_next( );
extern void
ipc_kmsg_destroy( );
extern void
ipc_kmsg_clean( );
extern void
ipc_kmsg_free( );
extern mach_msg_return_t
ipc_kmsg_get( );
extern mach_msg_return_t
ipc_kmsg_get_from_kernel( 
);
extern mach_msg_return_t
ipc_kmsg_put( );
extern void
ipc_kmsg_put_to_kernel( );
extern mach_msg_return_t
ipc_kmsg_copyin_header( );
extern mach_msg_return_t
ipc_kmsg_copyin( );
extern void
ipc_kmsg_copyin_from_kernel( );
extern mach_msg_return_t
ipc_kmsg_copyout_header( );
extern mach_msg_return_t
ipc_kmsg_copyout_object( 
);
extern mach_msg_return_t
ipc_kmsg_copyout_body( );
extern mach_msg_return_t
ipc_kmsg_copyout( );
extern mach_msg_return_t
ipc_kmsg_copyout_pseudo( );
extern void
ipc_kmsg_copyout_dest( );
extern mach_msg_return_t
ipc_kmsg_copyin_compat( );
extern mach_msg_return_t
ipc_kmsg_copyout_compat( );
typedef unsigned int ipc_kobject_t;
typedef unsigned int ipc_kobject_type_t;
extern struct ipc_kmsg *
ipc_kobject_server( );
extern void
ipc_kobject_set( );
extern void
ipc_kobject_destroy( );
typedef unsigned int ipc_object_refs_t;
typedef unsigned int ipc_object_bits_t;
typedef unsigned int ipc_object_type_t;
typedef struct ipc_object {
	ipc_object_refs_t io_references;
	ipc_object_bits_t io_bits;
} *ipc_object_t;
extern zone_t ipc_object_zones[	2		];
extern void
ipc_object_reference( );
extern void
ipc_object_release( );
extern kern_return_t
ipc_object_translate( 
);
extern kern_return_t
ipc_object_alloc_dead( );
extern kern_return_t
ipc_object_alloc_dead_name( );
extern kern_return_t
ipc_object_alloc( 
);
extern kern_return_t
ipc_object_alloc_name( 
);
extern mach_msg_type_name_t
ipc_object_copyin_type( );
extern kern_return_t
ipc_object_copyin( 
);
extern void
ipc_object_copyin_from_kernel( );
extern void
ipc_object_destroy( );
extern kern_return_t
ipc_object_copyout( 
);
extern kern_return_t
ipc_object_copyout_name( 
);
extern void
ipc_object_copyout_dest( 
);
extern kern_return_t
ipc_object_rename( );
extern mach_msg_type_name_t
ipc_object_copyout_type_compat( );
extern kern_return_t
ipc_object_copyin_compat( 
);
extern kern_return_t
ipc_object_copyin_header( 
);
extern kern_return_t
ipc_object_copyout_compat( 
);
extern kern_return_t
ipc_object_copyout_name_compat( 
);
extern void
ipc_object_print( );
typedef thread_t ipc_thread_t;
typedef struct ipc_thread_queue {
	ipc_thread_t ithq_base;
} *ipc_thread_queue_t;
extern void
ipc_thread_enqueue( );
extern ipc_thread_t
ipc_thread_dequeue( );
extern void
ipc_thread_rmqueue( );
typedef struct ipc_mqueue {
	struct ipc_kmsg_queue imq_messages;
	struct ipc_thread_queue imq_threads;
} *ipc_mqueue_t;
extern void
ipc_mqueue_init( );
extern void
ipc_mqueue_move( );
extern void
ipc_mqueue_changed( );
extern mach_msg_return_t
ipc_mqueue_send( );
extern mach_msg_return_t
ipc_mqueue_receive( 
);
typedef unsigned int ipc_table_index_t;	 
typedef unsigned int ipc_table_elems_t;	 
typedef struct ipc_table_size {
	ipc_table_elems_t its_size;	 
} *ipc_table_size_t;
extern ipc_table_size_t ipc_table_entries;
extern ipc_table_size_t ipc_table_dnrequests;
extern void
ipc_table_init();
extern vm_offset_t
ipc_table_alloc( );
extern vm_offset_t
ipc_table_realloc( );
extern void
ipc_table_free( );
typedef unsigned int ipc_port_timestamp_t;
typedef struct ipc_port {
	struct ipc_object ip_object;
	union {
		struct ipc_space *receiver;
		struct ipc_port *destination;
		ipc_port_timestamp_t timestamp;
	} data;
	mach_port_t ip_receiver_name;
	ipc_kobject_t ip_kobject;
	mach_port_mscount_t ip_mscount;
	mach_port_rights_t ip_srights;
	mach_port_rights_t ip_sorights;
	struct ipc_port *ip_nsrequest;
	struct ipc_port *ip_pdrequest;
	struct ipc_port_request *ip_dnrequests;
	struct ipc_pset *ip_pset;
	mach_port_seqno_t ip_seqno;		 
	unsigned short ip_msgcount;		 
	unsigned short ip_qlimit;		 
	struct ipc_mqueue ip_messages;
	struct ipc_thread_queue ip_blocked;
	unsigned long ip_norma_uid;
	unsigned long ip_norma_dest_node;
	long ip_norma_stransit;
	long ip_norma_sotransit;
	long ip_norma_xmm_object_refs;
	boolean_t ip_norma_is_proxy;
	boolean_t ip_norma_is_special;
	boolean_t ip_norma_atrium_waiter;
	boolean_t ip_norma_forward;              
	boolean_t ip_norma_sync;                 
	struct ipc_port *ip_norma_atrium;
	struct ipc_port *ip_norma_queue_next;
	struct ipc_port *ip_norma_xmm_object;
	struct ipc_port *ip_norma_next;
	long ip_norma_spare1;
	long ip_norma_spare2;
	long ip_norma_spare3;
	long ip_norma_spare4;
} *ipc_port_t;
typedef ipc_table_index_t ipc_port_request_index_t;
typedef struct ipc_port_request {
	union {
		struct ipc_port *port;
		ipc_port_request_index_t index;
	} notify;
	union {
		mach_port_t name;
		struct ipc_table_size *size;
	} name;
} *ipc_port_request_t;
extern ipc_port_timestamp_t ipc_port_timestamp_data;
extern ipc_port_timestamp_t
ipc_port_timestamp();
extern kern_return_t
ipc_port_dnrequest( 
);
extern kern_return_t
ipc_port_dngrow( );
extern ipc_port_t
ipc_port_dncancel( );
extern void
ipc_port_pdrequest( );
extern void
ipc_port_nsrequest( 
);
extern void
ipc_port_set_qlimit( );
extern void
ipc_port_set_seqno( );
extern void
ipc_port_clear_receiver( );
extern void
ipc_port_init( );
extern kern_return_t
ipc_port_alloc( );
extern kern_return_t
ipc_port_alloc_name( );
extern void
ipc_port_destroy( );
extern boolean_t
ipc_port_check_circularity( );
extern ipc_port_t
ipc_port_lookup_notify( );
extern ipc_port_t
ipc_port_make_send( );
extern ipc_port_t
ipc_port_copy_send( );
extern mach_port_t
ipc_port_copyout_send( );
extern void
ipc_port_release_send( );
extern ipc_port_t
ipc_port_make_sonce( );
extern void
ipc_port_release_sonce( );
extern void
ipc_port_release_receive( );
extern ipc_port_t
ipc_port_alloc_special( );
extern void
ipc_port_dealloc_special( );
extern kern_return_t
ipc_port_alloc_compat( );
extern mach_port_t
ipc_port_copyout_send_compat( );
extern mach_port_t
ipc_port_copyout_receiver( );
extern void
ipc_port_print( );
extern void		kmem_init();
extern kern_return_t	kmem_alloc();
extern kern_return_t	kmem_alloc_pageable();
extern kern_return_t	kmem_alloc_wired();
extern kern_return_t	kmem_alloc_aligned();
extern kern_return_t	kmem_realloc();
extern void		kmem_free();
extern vm_map_t		kmem_suballoc();
extern kern_return_t	kmem_io_map_copyout();
extern void		kmem_io_map_deallocate();
extern vm_map_t	kernel_map;
extern vm_map_t	kernel_pageable_map;
extern vm_map_t ipc_kernel_map;
extern ipc_port_t		host_special_port[	40 ];
struct netvec {
	unsigned long	addr;
	unsigned long	size;
};
typedef	char *	va_list;
struct pginfo {
	unsigned long	pg_msgh_offset;
	boolean_t	pg_page_first;
	boolean_t	pg_page_last;
	boolean_t	pg_copy_last;
	unsigned long	pg_copy_offset;
	unsigned long	pg_copy_size;
	unsigned long	pg_first_seqid;
	unsigned long	pg_remote_port;	 
	unsigned long	pg_copy_index;	 
	unsigned long	pg_copy_npages;	 
	unsigned long	pg_msgh_id;	 
};
struct netipc_hdr {
	unsigned long	checksum;
	unsigned long	type;
	unsigned long	seqid;
	struct pginfo	pg;
	unsigned long	remote;
	unsigned long	ctl;
	unsigned long	ctl_seqid;
	kern_return_t	ctl_status;
	unsigned long	ctl_data;
	unsigned long	incarnation;
};
extern void netipc_thread_lock();
extern void netipc_thread_unlock();
extern void netipc_copy_ungrab();
typedef struct netipc_packet		*netipc_packet_t;
struct netipc_packet {
	unsigned long	dp_type;
	unsigned long	dp_remote;
	unsigned long	dp_seqid;
	unsigned long	dp_first_seqid;
	unsigned long	dp_last_seqid;
	unsigned long	dp_last_unacked;
	ipc_kmsg_t	dp_kmsg;
	unsigned long	dp_offset;
	netipc_packet_t	dp_next;
	ipc_port_t	dp_remote_port;
	vm_map_copy_t	dp_copy;
	unsigned long	dp_copy_index;
	unsigned long	dp_copy_npages;
	unsigned long	dp_copy_last;
	unsigned long	dp_page_list_base;
	boolean_t	dp_has_continuation;
	boolean_t	dp_being_continued;
	boolean_t	dp_reconstruct_complete;
};
typedef struct netipc_packet_state {
	netipc_packet_t		netipc_packet;
	netipc_packet_t		suspended_packet;
	ipc_port_t		suspended_ports;
	unsigned int		state;
} *netipc_packet_state_t;
struct netipc_packet_state netipc_packet_state[	256	];
extern void		netipc_start();
extern boolean_t	norma_ipc_prepare_dest();
extern void		norma_ipc_send_dest();
extern unsigned long	norma_ipc_send_port();
static boolean_t	dp_advance();
netipc_packet_t		netipc_packet_allocate();
void			netipc_packet_deallocate();
void			netipc_set_node_state();
void norma_ipc_queue_port();
zone_t			netipc_packet_zone;
ipc_kmsg_t		netipc_kmsg_cache;
vm_size_t		netipc_kmsg_first_half;
int			netipc_kmsg_cache_hits;		 
int			netipc_kmsg_cache_misses;	 
int			netipc_kmsg_splits;		 
struct netipc_hdr	send_hdr_p;
struct netipc_hdr	send_hdr_k;
struct netipc_hdr	send_hdr_m;
struct netipc_hdr	send_hdr_o;
struct netvec		netvec_p[3];
struct netvec		netvec_k[3];
struct netvec		netvec_m[3];
struct netvec		netvec_o[3];
struct vm_map_copy	netipc_kmsg_more_copy;
struct vm_map_copy	netipc_ool_ports_copy;
unsigned int netipc_output_replenish_cleaned = 0;
extern kern_return_t vm_map_copy_discard_cont();
netipc_send_page(remote, dp)
	unsigned long remote;
	register netipc_packet_t dp;
{
	vm_page_t *page_list;
	unsigned long align;
	unsigned long length;
	unsigned long offset;
	char	*__ntr_func_name__ = "netipc_send_page" ;
	offset = 0;
	align = dp->dp_copy->offset & page_mask;
	if (dp->dp_copy_index < dp->dp_copy_npages - 1) {
		length = page_size	;
	} else {
		length = ((dp->dp_copy->size + align) & page_mask);
		if (length == 0) {
			length = page_size	;
		} else {
			length = ((((unsigned long)(length)) + (4  - 1)
) & ~(4  - 1) ) ;
		}
	}
	do { 	if (!(((((unsigned long)(offset)) & (4  - 1) ) == 0) ))
Assert("../../../../../src/mk/kernel/norma/ipc_output.c", 1246);
} while (	((boolean_t) 0)  )  ;
	do { 	if (!(((((unsigned long)(length)) & (4  - 1) ) == 0) ))
Assert("../../../../../src/mk/kernel/norma/ipc_output.c", 1247);
} while (	((boolean_t) 0)  )  ;
	do { 	if (!(length > 0))
Assert("../../../../../src/mk/kernel/norma/ipc_output.c", 1248);
} while (	((boolean_t) 0)  )  ;
	do { 	if (!(length <= page_size	))
Assert("../../../../../src/mk/kernel/norma/ipc_output.c", 1249);
} while (	((boolean_t) 0)  )  ;
	netipc_set_node_state(&send_hdr_p.type, remote);
	send_hdr_p.pg.pg_copy_offset = align;
	send_hdr_p.pg.pg_msgh_offset = dp->dp_offset;
	send_hdr_p.pg.pg_copy_size = dp->dp_copy->size;
	send_hdr_p.pg.pg_page_first = (dp->dp_copy_index == 0);
	send_hdr_p.pg.pg_page_last = (dp->dp_copy_index ==
				      dp->dp_copy_npages - 1);
	send_hdr_p.pg.pg_copy_last = dp->dp_copy_last;
	send_hdr_p.seqid = dp->dp_seqid;
	send_hdr_p.pg.pg_first_seqid = dp->dp_first_seqid;
	send_hdr_p.pg.pg_remote_port = (unsigned long)
		dp->dp_remote_port->ip_norma_uid;
	send_hdr_p.pg.pg_copy_index = (unsigned long) dp->dp_copy_index;
	send_hdr_p.pg.pg_msgh_id = (unsigned long)
		dp->dp_kmsg->ikm_header.msgh_id;
	send_hdr_p.pg.pg_copy_npages = (unsigned long) dp->dp_copy_npages;
	page_list = &dp->dp_copy->	c_u.c_p.page_list [dp->dp_copy_index];
	if (offset + length > page_size	) {
		vm_offset_t first_half = page_size	 - offset;
		netvec_p[1].addr =
(((vm_offset_t)((page_list[0])->phys_addr) + ((vm_offset_t) 0xc0000000)
)  )  + offset;
		netvec_p[1].size = first_half;
		netvec_p[2].addr =
(((vm_offset_t)((page_list[1])->phys_addr) + ((vm_offset_t) 0xc0000000) )  ) ;
		netvec_p[2].size = length - first_half;
		netipc_send_with_timeout(remote, netvec_p, 3,
					 (unsigned long) dp, dp->dp_seqid);
	} else {
		netvec_p[1].addr =
(((vm_offset_t)((page_list[0])->phys_addr) + ((vm_offset_t) 0xc0000000)
)  )  + offset;
		netvec_p[1].size = length;
		netipc_send_with_timeout(remote, netvec_p, 2,
					 (unsigned long) dp, dp->dp_seqid);
	}
}
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads