? INSTALL ? Makefile.in ? aclocal.m4 ? autom4te.cache ? build-aux ? config.h.in ? configure ? device/dev_pager.h ? doc/mach.info ? doc/mach.info-1 ? doc/mach.info-2 ? doc/stamp-vti ? doc/version.texi ? i386/i386at/lpr.h Index: device/dev_hdr.h =================================================================== RCS file: /sources/hurd/gnumach/device/dev_hdr.h,v retrieving revision 1.1.1.1.4.3 diff -u -p -r1.1.1.1.4.3 dev_hdr.h --- device/dev_hdr.h 30 Apr 2007 20:45:01 -0000 1.1.1.1.4.3 +++ device/dev_hdr.h 20 Jul 2008 13:31:11 -0000 @@ -130,4 +130,29 @@ boolean_t dev_map(boolean_t (*)(), mach_ #define device_lock(device) simple_lock(&(device)->lock) #define device_unlock(device) simple_unlock(&(device)->lock) +/* + * device name lookup + */ +extern boolean_t dev_name_lookup( + char * name, + dev_ops_t *ops, /* out */ + int *unit); /* out */ + +/* + * Change an entry in the indirection list. + */ +extern void dev_set_indirection( + char *name, + dev_ops_t ops, + int unit); + +/* +*extern kern_return_t device_pager_setup( +* mach_device_t device, +* int prot, +* vm_offset_t offset, +* vm_size_t size, +* mach_port_t *pager) +*/ + #endif /* _DEVICE_DEV_HDR_H_ */ Index: device/dev_pager.c =================================================================== RCS file: /sources/hurd/gnumach/device/dev_pager.c,v retrieving revision 1.3.2.7 diff -u -p -r1.3.2.7 dev_pager.c --- device/dev_pager.c 17 Jul 2008 01:22:35 -0000 1.3.2.7 +++ device/dev_pager.c 20 Jul 2008 13:31:12 -0000 @@ -49,6 +49,7 @@ #include #include +#include #include #include Index: device/device_init.c =================================================================== RCS file: /sources/hurd/gnumach/device/device_init.c,v retrieving revision 1.1.1.1.4.5 diff -u -p -r1.1.1.1.4.5 device_init.c --- device/device_init.c 17 Jul 2008 00:04:01 -0000 1.1.1.1.4.5 +++ device/device_init.c 20 Jul 2008 13:31:12 -0000 @@ -36,7 +36,7 @@ #include #include - +#include extern void mach_device_init(); Index: device/ds_routines.c =================================================================== RCS file: /sources/hurd/gnumach/device/Attic/ds_routines.c,v retrieving revision 1.6.2.10 diff -u -p -r1.6.2.10 ds_routines.c --- device/ds_routines.c 15 Jul 2008 23:11:09 -0000 1.6.2.10 +++ device/ds_routines.c 20 Jul 2008 13:31:12 -0000 @@ -81,9 +81,11 @@ #include #include #include +#include #include #include +#include #include #include #include Index: device/ds_routines.h =================================================================== RCS file: /sources/hurd/gnumach/device/ds_routines.h,v retrieving revision 1.2.2.2 diff -u -p -r1.2.2.2 ds_routines.h --- device/ds_routines.h 15 Jul 2008 23:16:08 -0000 1.2.2.2 +++ device/ds_routines.h 20 Jul 2008 13:31:12 -0000 @@ -52,4 +52,6 @@ boolean_t ds_open_done(io_req_t); boolean_t ds_read_done(io_req_t); boolean_t ds_write_done(io_req_t); +extern void iowait (io_req_t ior); + #endif /* DS_ROUTINES_H */ Index: device/net_io.c =================================================================== RCS file: /sources/hurd/gnumach/device/net_io.c,v retrieving revision 1.2.2.14 diff -u -p -r1.2.2.14 net_io.c --- device/net_io.c 5 Mar 2007 21:00:34 -0000 1.2.2.14 +++ device/net_io.c 20 Jul 2008 13:31:12 -0000 @@ -41,6 +41,7 @@ #include #include +/* #include */ #include #include /* spl definitions */ #include Index: device/net_io.h =================================================================== RCS file: /sources/hurd/gnumach/device/net_io.h,v retrieving revision 1.2.2.2 diff -u -p -r1.2.2.2 net_io.h --- device/net_io.h 15 Jul 2008 23:20:47 -0000 1.2.2.2 +++ device/net_io.h 20 Jul 2008 13:31:12 -0000 @@ -78,6 +78,72 @@ extern io_return_t net_write(struct ifne extern vm_size_t net_kmsg_size; +extern void net_kmsg_collect (void); + +/* + * Removes a hash entry (ENTP) from its queue (HEAD). + * If the reference count of filter (HP) becomes zero and not USED, + * HP is removed from the corresponding port lists and is freed. + */ +/*extern int hash_ent_remove ( + * struct ifnet *ifp, + * net_hash_header_t hp, + * int used, + * net_hash_entry_t *head, + * net_hash_entry_t entp, + * queue_entry_t *dead_p); +*/ + +/* + * net_free_dead_infp (dead_infp) + * queue_entry_t dead_infp; list of dead net_rcv_port_t. + * + * Deallocates dead net_rcv_port_t. + * No locks should be held when called. + */ +extern void net_free_dead_infp (queue_entry_t dead_infp); + +/* + * net_free_dead_entp (dead_entp) + * queue_entry_t dead_entp; list of dead net_hash_entry_t. + * + * Deallocates dead net_hash_entry_t. + * No locks should be held when called. + */ +extern void net_free_dead_entp (queue_entry_t dead_entp); + +/* + * Return 1 if the 'f' is a valid filter program without a MATCH + * instruction. Return 2 if it is a valid filter program with a MATCH + * instruction. Otherwise, return 0. + * The constraints are that each jump be forward and to a valid + * code. The code must terminate with either an accept or reject. + * 'valid' is an array for use by the routine (it must be at least + * 'len' bytes long). + * + * The kernel needs to be able to verify an application's filter code. + * Otherwise, a bogus program could easily crash the system. + */ +extern int bpf_validate( + bpf_insn_t f, + int bytes, + bpf_insn_t *match); + +extern int bpf_eq ( + bpf_insn_t f1, + bpf_insn_t f2, + register int bytes); + +extern int net_add_q_info (ipc_port_t rcv_port); + +/* extern int bpf_match ( +* net_hash_header_t hash, +* int n_keys, +* unsigned int *keys, +* net_hash_entry_t **hash_headpp, +* net_hash_entry_t *entpp); +*/ + #define net_kmsg_alloc() ((ipc_kmsg_t) kalloc(net_kmsg_size)) #define net_kmsg_free(kmsg) kfree((vm_offset_t) (kmsg), net_kmsg_size) Index: device/subrs.c =================================================================== RCS file: /sources/hurd/gnumach/device/Attic/subrs.c,v retrieving revision 1.2.2.4 diff -u -p -r1.2.2.4 subrs.c --- device/subrs.c 10 Nov 2006 01:22:57 -0000 1.2.2.4 +++ device/subrs.c 20 Jul 2008 13:31:12 -0000 @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include Index: device/subrs.h =================================================================== RCS file: device/subrs.h diff -N device/subrs.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ device/subrs.h 20 Jul 2008 13:31:12 -0000 @@ -0,0 +1,33 @@ +/* + * Random device functions + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * Random device functions. + * + */ + +#ifndef _SUBRS_H_ +#define _SUBRS_H_ + +#include + +extern void wakeup (vm_offset_t channel); + +#endif /* _SUBRS_H_ */ Index: i386/i386/fpu.h =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/fpu.h,v retrieving revision 1.1.1.1.4.3 diff -u -p -r1.1.1.1.4.3 fpu.h --- i386/i386/fpu.h 12 Dec 2006 23:30:49 -0000 1.1.1.1.4.3 +++ i386/i386/fpu.h 20 Jul 2008 13:31:13 -0000 @@ -32,8 +32,9 @@ * floating-point processor. */ +#include #include -#include +#include /* * FPU instructions. @@ -99,5 +100,19 @@ #endif /* NCPUS == 1 */ extern int fp_kind; +extern void fp_save(thread_t thread); +extern void fp_load(thread_t thread); +extern void fp_free(struct i386_fpsave_state *fps); +extern void fpu_module_init(void); +extern kern_return_t fpu_set_state( + thread_t thread, + struct i386_float_state *state); +extern kern_return_t fpu_get_state( + thread_t thread, + struct i386_float_state *state); +extern void fpnoextflt(void); +extern void fpextovrflt(void); +extern void fpexterrflt(void); +extern void init_fpu(void); #endif /* _I386_FPU_H_ */ Index: i386/i386/gdt.h =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/gdt.h,v retrieving revision 1.2.2.3 diff -u -p -r1.2.2.3 gdt.h --- i386/i386/gdt.h 12 Dec 2006 23:30:49 -0000 1.2.2.3 +++ i386/i386/gdt.h 20 Jul 2008 13:31:13 -0000 @@ -59,4 +59,6 @@ extern struct real_descriptor gdt[GDTSZ] #define fill_gdt_descriptor(segment, base, limit, access, sizebits) \ fill_descriptor(&gdt[segment/8], base, limit, access, sizebits) +extern void gdt_init(void); + #endif /* _I386_GDT_ */ Index: i386/i386/io_map.c =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/Attic/io_map.c,v retrieving revision 1.1.1.1.4.2 diff -u -p -r1.1.1.1.4.2 io_map.c --- i386/i386/io_map.c 9 Nov 2006 23:33:44 -0000 1.1.1.1.4.2 +++ i386/i386/io_map.c 20 Jul 2008 13:31:13 -0000 @@ -26,6 +26,7 @@ #include #include +#include #include #include Index: i386/i386/ktss.h =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/Attic/ktss.h,v retrieving revision 1.2.2.1 diff -u -p -r1.2.2.1 ktss.h --- i386/i386/ktss.h 7 May 2007 22:04:53 -0000 1.2.2.1 +++ i386/i386/ktss.h 20 Jul 2008 13:31:13 -0000 @@ -27,4 +27,6 @@ extern struct task_tss ktss; +extern void ktss_init(void); + #endif /* _I386_KTSS_ */ Index: i386/i386/ldt.h =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/ldt.h,v retrieving revision 1.2.2.1 diff -u -p -r1.2.2.1 ldt.h --- i386/i386/ldt.h 13 Oct 2006 14:32:32 -0000 1.2.2.1 +++ i386/i386/ldt.h 20 Jul 2008 13:31:13 -0000 @@ -61,6 +61,8 @@ extern struct real_descriptor ldt[LDTSZ] fill_gate((struct real_gate*)&ldt[selector/8], \ offset, dest_selector, access, word_count) +void ldt_init(void); + #endif /* !__ASSEMBLER__ */ #endif /* _I386_LDT_ */ Index: i386/i386/loose_ends.h =================================================================== RCS file: i386/i386/loose_ends.h diff -N i386/i386/loose_ends.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ i386/i386/loose_ends.h 20 Jul 2008 13:31:13 -0000 @@ -0,0 +1,33 @@ +/* + * Other useful functions? + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * Other useful functions? + * + */ + +#ifndef _LOOSE_ENDS_H_ +#define _LOOSE_ENDS_H_ + +#include + +extern void delay (n); + +#endif /* _LOOSE_ENDS_H_ */ Index: i386/i386/model_dep.h =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/Attic/model_dep.h,v retrieving revision 1.1.2.1 diff -u -p -r1.1.2.1 model_dep.h --- i386/i386/model_dep.h 17 Jul 2008 01:58:15 -0000 1.1.2.1 +++ i386/i386/model_dep.h 20 Jul 2008 13:31:13 -0000 @@ -48,4 +48,6 @@ extern void halt_all_cpus (boolean_t reb extern void resettodr (void); +extern void startrtclock (void); + #endif /* _I386AT_MODEL_DEP_H_ */ Index: i386/i386/pcb.c =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/pcb.c,v retrieving revision 1.2.4.10 diff -u -p -r1.2.4.10 pcb.c --- i386/i386/pcb.c 7 May 2007 22:04:53 -0000 1.2.4.10 +++ i386/i386/pcb.c 20 Jul 2008 13:31:13 -0000 @@ -42,6 +42,7 @@ #include #include +#include #include #include #include Index: i386/i386/pcb.h =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/Attic/pcb.h,v retrieving revision 1.1.2.1 diff -u -p -r1.1.2.1 pcb.h --- i386/i386/pcb.h 12 Nov 2006 23:45:06 -0000 1.1.2.1 +++ i386/i386/pcb.h 20 Jul 2008 13:31:13 -0000 @@ -58,4 +58,15 @@ extern vm_offset_t set_user_regs ( struct exec_info *exec_info, vm_size_t arg_size); +extern void load_context (thread_t new); + +extern void stack_attach ( + thread_t thread, + vm_offset_t stack, + void (*continuation)()); + +extern vm_offset_t stack_detach (thread_t thread); + +extern void switch_ktss (pcb_t pcb); + #endif /* _I386_PCB_H_ */ Index: i386/i386/phys.h =================================================================== RCS file: i386/i386/phys.h diff -N i386/i386/phys.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ i386/i386/phys.h 20 Jul 2008 13:31:13 -0000 @@ -0,0 +1,48 @@ +/* + * Physical memory functions + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * Physical memory functions. + * + */ + +#ifndef _PHYS_H_ +#define _PHYS_H_ + +#include + +/* + * pmap_zero_page zeros the specified (machine independent) page. + */ +extern void pmap_zero_page (vm_offset_t); + +/* + * pmap_copy_page copies the specified (machine independent) pages. + */ +extern void pmap_copy_page (vm_offset_t, vm_offset_t); + +/* + * kvtophys(addr) + * + * Convert a kernel virtual address to a physical address + */ +extern vm_offset_t kvtophys (vm_offset_t); + +#endif /* _PHYS_H_ */ Index: i386/i386/pic.h =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/Attic/pic.h,v retrieving revision 1.2.2.3 diff -u -p -r1.2.2.3 pic.h --- i386/i386/pic.h 5 Nov 2006 16:00:10 -0000 1.2.2.3 +++ i386/i386/pic.h 20 Jul 2008 13:31:13 -0000 @@ -176,4 +176,9 @@ WITH THE USE OR PERFORMANCE OF THIS SOFT #define READ_IR_ONRD 0x00 #define READ_IS_ONRD 0x01 +#ifndef __ASSEMBLER__ +extern void form_pic_mask (void); +extern void picinit (void); +#endif + #endif /* _I386_PIC_H_ */ Index: i386/i386/pit.c =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/pit.c,v retrieving revision 1.3.2.7 diff -u -p -r1.3.2.7 pit.c --- i386/i386/pit.c 5 Feb 2007 21:09:36 -0000 1.3.2.7 +++ i386/i386/pit.c 20 Jul 2008 13:31:13 -0000 @@ -51,6 +51,7 @@ WITH THE USE OR PERFORMANCE OF THIS SOFT #include #include +#include #include #include Index: i386/i386/pit.h =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/Attic/pit.h,v retrieving revision 1.3.2.4 diff -u -p -r1.3.2.4 pit.h --- i386/i386/pit.h 5 Nov 2006 16:36:31 -0000 1.3.2.4 +++ i386/i386/pit.h 20 Jul 2008 13:31:13 -0000 @@ -77,3 +77,5 @@ WITH THE USE OR PERFORMANCE OF THIS SOFT #if AT386 #define CLKNUM 1193167 #endif /* AT386 */ + +extern void clkstart(void); Index: i386/i386/trap.c =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/trap.c,v retrieving revision 1.5.2.11 diff -u -p -r1.5.2.11 trap.c --- i386/i386/trap.c 17 Jul 2008 01:22:36 -0000 1.5.2.11 +++ i386/i386/trap.c 20 Jul 2008 13:31:13 -0000 @@ -32,6 +32,8 @@ #include #include +#include +#include #include /* for spl_t */ #include @@ -39,6 +41,7 @@ #include "vm_param.h" #include +#include #include #include Index: i386/i386/trap.h =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/trap.h,v retrieving revision 1.2.2.1 diff -u -p -r1.2.2.1 trap.h --- i386/i386/trap.h 13 Oct 2006 14:32:32 -0000 1.2.2.1 +++ i386/i386/trap.h 20 Jul 2008 13:31:13 -0000 @@ -33,6 +33,8 @@ char *trap_name(unsigned int trapnum); +unsigned int interrupted_pc(thread_t); + #endif /* !__ASSEMBLER__ */ #endif /* _I386_TRAP_H_ */ Index: i386/i386/user_ldt.c =================================================================== RCS file: /sources/hurd/gnumach/i386/i386/user_ldt.c,v retrieving revision 1.2.4.5 diff -u -p -r1.2.4.5 user_ldt.c --- i386/i386/user_ldt.c 8 Jul 2007 16:18:35 -0000 1.2.4.5 +++ i386/i386/user_ldt.c 20 Jul 2008 13:31:13 -0000 @@ -35,6 +35,7 @@ #include +#include #include #include #include Index: i386/i386at/autoconf.h =================================================================== RCS file: i386/i386at/autoconf.h diff -N i386/i386at/autoconf.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ i386/i386at/autoconf.h 20 Jul 2008 13:31:13 -0000 @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * Device auto configuration. + * + */ + +#ifndef _AUTOCONF_H_ +#define _AUTOCONF_H_ + +#include + +/* + * probeio: + * + * Probe and subsequently attach devices out on the AT bus. + * + * + */ +void probeio(void); + +extern void take_dev_irq ( + struct bus_device *dev); + +#endif /* _AUTOCONF_H_ */ Index: i386/i386at/com.c =================================================================== RCS file: /sources/hurd/gnumach/i386/i386at/Attic/com.c,v retrieving revision 1.3.2.5 diff -u -p -r1.3.2.5 com.c --- i386/i386at/com.c 17 Jul 2008 01:22:36 -0000 1.3.2.5 +++ i386/i386at/com.c 20 Jul 2008 13:31:13 -0000 @@ -39,6 +39,8 @@ #include #include #include +#include +#include #include #include Index: i386/i386at/com.h =================================================================== RCS file: i386/i386at/com.h diff -N i386/i386at/com.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ i386/i386at/com.h 20 Jul 2008 13:31:13 -0000 @@ -0,0 +1,45 @@ +/* + * Communication functions + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * Communication functions. + * + */ + +#ifndef _COM_H_ +#define _COM_H_ + +#include + +/* + * Set receive modem state from modem status register. + */ +extern void fix_modem_state(int unit, int modem_stat); + +extern void comtimer(void); + +/* + * Modem change (input signals) + */ +extern void commodem_intr(int unit, int stat); + +extern int comgetc(int unit); + +#endif /* _COM_H_ */ Index: i386/i386at/idt.h =================================================================== RCS file: /sources/hurd/gnumach/i386/i386at/Attic/idt.h,v retrieving revision 1.2.2.1 diff -u -p -r1.2.2.1 idt.h --- i386/i386at/idt.h 15 Oct 2006 14:59:04 -0000 1.2.2.1 +++ i386/i386at/idt.h 20 Jul 2008 13:31:13 -0000 @@ -34,4 +34,8 @@ #include +#ifndef __ASSEMBLER__ +extern void idt_init (void); +#endif + #endif /* _I386AT_IDT_ */ Index: i386/i386at/int_init.h =================================================================== RCS file: i386/i386at/int_init.h diff -N i386/i386at/int_init.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ i386/i386at/int_init.h 20 Jul 2008 13:31:13 -0000 @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * Initialization functions. + * + */ + +#ifndef _INT_INIT_H_ +#define _INT_INIT_H_ + +#include + +#ifndef __ASSEMBLER__ +extern void int_init (void); +#endif + +#endif /* _INT_INIT_H_ */ Index: i386/i386at/kd.c =================================================================== RCS file: /sources/hurd/gnumach/i386/i386at/Attic/kd.c,v retrieving revision 1.5.2.14 diff -u -p -r1.5.2.14 kd.c --- i386/i386at/kd.c 15 Jul 2008 23:51:22 -0000 1.5.2.14 +++ i386/i386at/kd.c 20 Jul 2008 13:31:14 -0000 @@ -85,6 +85,7 @@ WITH THE USE OR PERFORMANCE OF THIS SOFT #include #include /* for struct uio (!) */ #include +#include #include #include #include Index: i386/i386at/kd_event.c =================================================================== RCS file: /sources/hurd/gnumach/i386/i386at/Attic/kd_event.c,v retrieving revision 1.3.2.8 diff -u -p -r1.3.2.8 kd_event.c --- i386/i386at/kd_event.c 13 Nov 2006 21:30:36 -0000 1.3.2.8 +++ i386/i386at/kd_event.c 20 Jul 2008 13:31:14 -0000 @@ -60,6 +60,7 @@ WITH THE USE OR PERFORMANCE OF THIS SOFT #include #ifdef MACH_KERNEL +#include #include #include #else /* MACH_KERNEL */ Index: i386/i386at/kd_mouse.c =================================================================== RCS file: /sources/hurd/gnumach/i386/i386at/Attic/kd_mouse.c,v retrieving revision 1.3.2.8 diff -u -p -r1.3.2.8 kd_mouse.c --- i386/i386at/kd_mouse.c 13 Nov 2006 21:30:36 -0000 1.3.2.8 +++ i386/i386at/kd_mouse.c 20 Jul 2008 13:31:14 -0000 @@ -68,8 +68,10 @@ WITH THE USE OR PERFORMANCE OF THIS SOFT #include #include #ifdef MACH_KERNEL +#include #include #include +#include #else /* MACH_KERNEL */ #include #include @@ -81,8 +83,10 @@ WITH THE USE OR PERFORMANCE OF THIS SOFT #include #endif /* MACH_KERNEL */ #include +#include #include #include +#include #include #include #include Index: i386/i386at/lpr.c =================================================================== RCS file: /sources/hurd/gnumach/i386/i386at/Attic/lpr.c,v retrieving revision 1.1.1.1.4.9 diff -u -p -r1.1.1.1.4.9 lpr.c --- i386/i386at/lpr.c 13 Nov 2006 21:30:36 -0000 1.1.1.1.4.9 +++ i386/i386at/lpr.c 20 Jul 2008 13:31:14 -0000 @@ -55,6 +55,8 @@ #include #include #include +#include +#include #include extern void timeout(); Index: i386/i386at/model_dep.c =================================================================== RCS file: /sources/hurd/gnumach/i386/i386at/Attic/model_dep.c,v retrieving revision 1.9.2.16 diff -u -p -r1.9.2.16 model_dep.c --- i386/i386at/model_dep.c 17 Jul 2008 00:28:04 -0000 1.9.2.16 +++ i386/i386at/model_dep.c 20 Jul 2008 13:31:14 -0000 @@ -49,11 +49,22 @@ #include #include #include +#include +#include +#include +#include #include +#include +#include #include #include #include #include +#include +#include +#include +#include +#include /* Location of the kernel's symbol table. Both of these are 0 if none is available. */ Index: i386/i386at/rtc.h =================================================================== RCS file: /sources/hurd/gnumach/i386/i386at/Attic/rtc.h,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 rtc.h --- i386/i386at/rtc.h 25 Feb 1997 21:27:19 -0000 1.1.1.1 +++ i386/i386at/rtc.h 20 Jul 2008 13:31:14 -0000 @@ -134,4 +134,5 @@ struct rtc_st { } \ } - +extern int readtodc(u_int *tp); +extern int writetodc(void); Index: i386/intel/pmap.h =================================================================== RCS file: /sources/hurd/gnumach/i386/intel/pmap.h,v retrieving revision 1.2.2.5 diff -u -p -r1.2.2.5 pmap.h --- i386/intel/pmap.h 30 Apr 2007 20:30:11 -0000 1.2.2.5 +++ i386/intel/pmap.h 20 Jul 2008 13:31:15 -0000 @@ -42,6 +42,7 @@ #include #include #include +#include #include /* @@ -365,4 +366,46 @@ pt_entry_t *pmap_pte(pmap_t pmap, vm_off #endif /* __ASSEMBLER__ */ +/* + * Routine: pmap_pageable + * Function: + * Make the specified pages (by pmap, offset) + * pageable (or not) as requested. + * + * A page which is not pageable may not take + * a fault; therefore, its page table entry + * must remain valid for the duration. + * + * This routine is merely advisory; pmap_enter + * will specify that these pages are to be wired + * down (or not) as appropriate. + */ +extern void pmap_pageable( + pmap_t pmap, + vm_offset_t start, + vm_offset_t end, + boolean_t pageable); + +/* + * Bootstrap the system enough to run with virtual memory. + * Allocate the kernel page directory and page tables, + * and direct-map all physical memory. + * Called with mapping off. + */ +extern void pmap_bootstrap(void); + +/* + * Back-door routine for mapping kernel VM at initialization. + * Useful for mapping memory outside the range + * [phys_first_addr, phys_last_addr) (i.e., devices). + * Otherwise like pmap_map. + */ +extern vm_offset_t pmap_map_bd( + vm_offset_t virt, + vm_offset_t start, + vm_offset_t end, + vm_prot_t prot); + +extern void pmap_unmap_page_zero (void); + #endif /* _PMAP_MACHINE_ */ Index: i386/intel/read_fault.h =================================================================== RCS file: i386/intel/read_fault.h diff -N i386/intel/read_fault.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ i386/intel/read_fault.h 20 Jul 2008 13:31:15 -0000 @@ -0,0 +1,35 @@ +/* + * Kernel read_fault on i386 functions + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * Kernel read_fault on i386 functions. + * + */ + +#ifndef _READ_FAULT_H_ +#define _READ_FAULT_H_ + +#include + +extern kern_return_t intel_read_fault( + vm_map_t map, + vm_offset_t vaddr); + +#endif /* _READ_FAULT_H_ */ Index: kern/ast.h =================================================================== RCS file: /sources/hurd/gnumach/kern/ast.h,v retrieving revision 1.2.2.2 diff -u -p -r1.2.2.2 ast.h --- kern/ast.h 30 Apr 2007 20:30:11 -0000 1.2.2.2 +++ kern/ast.h 20 Jul 2008 13:31:15 -0000 @@ -127,4 +127,8 @@ MACRO_END * be followed by ast_propagate(). */ +extern void ast_init (void); + +extern void ast_check (void); + #endif /* _KERN_AST_H_ */ Index: kern/debug.c =================================================================== RCS file: /sources/hurd/gnumach/kern/Attic/debug.c,v retrieving revision 1.3.2.8 diff -u -p -r1.3.2.8 debug.c --- kern/debug.c 17 Jul 2008 00:28:04 -0000 1.3.2.8 +++ kern/debug.c 20 Jul 2008 13:31:15 -0000 @@ -33,10 +33,11 @@ #include +#include #include extern void cnputc(); -void Debugger() __attribute__ ((noreturn)); +/* void Debugger() __attribute__ ((noreturn)); */ #if MACH_KDB extern int db_breakpoints_inserted; Index: kern/debug.h =================================================================== RCS file: /sources/hurd/gnumach/kern/debug.h,v retrieving revision 1.2.2.4 diff -u -p -r1.2.2.4 debug.h --- kern/debug.h 30 Apr 2007 20:30:11 -0000 1.2.2.4 +++ kern/debug.h 20 Jul 2008 13:31:15 -0000 @@ -60,4 +60,6 @@ extern void panic_init(void); extern void panic (const char *s, ...) __attribute__ ((noreturn)); +extern void Debugger (char *message) __attribute__ ((noreturn)); + #endif /* _mach_debug__debug_ */ Index: kern/eventcount.h =================================================================== RCS file: /sources/hurd/gnumach/kern/eventcount.h,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 eventcount.h --- kern/eventcount.h 25 Feb 1997 21:28:22 -0000 1.1.1.1 +++ kern/eventcount.h 20 Jul 2008 13:31:15 -0000 @@ -54,4 +54,6 @@ extern void evc_init(evc_t ev), extern kern_return_t evc_wait(natural_t ev_id); +extern void evc_notify_abort (thread_t thread); + #endif /* _KERN_EVENTCOUNT_H_ */ Index: kern/ipc_mig.c =================================================================== RCS file: /sources/hurd/gnumach/kern/ipc_mig.c,v retrieving revision 1.2.2.6 diff -u -p -r1.2.2.6 ipc_mig.c --- kern/ipc_mig.c 17 Jul 2008 01:02:02 -0000 1.2.2.6 +++ kern/ipc_mig.c 20 Jul 2008 13:31:15 -0000 @@ -32,9 +32,11 @@ #include #include #include +#include #include #include #include +#include #include #include #include @@ -49,7 +51,7 @@ #include #include #include - +#include /* * Routine: mach_msg_send_from_kernel Index: kern/ipc_mig.h =================================================================== RCS file: kern/ipc_mig.h diff -N kern/ipc_mig.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ kern/ipc_mig.h 20 Jul 2008 13:31:15 -0000 @@ -0,0 +1,65 @@ +/* + * MIG IPC functions + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * MIG IPC functions. + * + */ + +#ifndef _IPC_MIG_H_ +#define _IPC_MIG_H_ + +#include + +/* + * Routine: mach_msg_send_from_kernel + * Purpose: + * Send a message from the kernel. + * + * This is used by the client side of KernelUser interfaces + * to implement SimpleRoutines. Currently, this includes + * device_reply and memory_object messages. + * Conditions: + * Nothing locked. + * Returns: + * MACH_MSG_SUCCESS Sent the message. + * MACH_SEND_INVALID_DATA Bad destination port. + */ +extern mach_msg_return_t mach_msg_send_from_kernel( + mach_msg_header_t *msg, + mach_msg_size_t send_size); + +/* + * Routine: mach_msg_abort_rpc + * Purpose: + * Destroy the thread's ith_rpc_reply port. + * This will interrupt a mach_msg_rpc_from_kernel + * with a MACH_RCV_PORT_DIED return code. + * Conditions: + * Nothing locked. + */ +extern void mach_msg_abort_rpc (ipc_thread_t); + +extern mach_msg_return_t mach_msg_rpc_from_kernel( + mach_msg_header_t *msg, + mach_msg_size_t send_size, + mach_msg_size_t reply_size); + +#endif /* _IPC_MIG_H_ */ Index: kern/ipc_tt.h =================================================================== RCS file: /sources/hurd/gnumach/kern/ipc_tt.h,v retrieving revision 1.2.2.1 diff -u -p -r1.2.2.1 ipc_tt.h --- kern/ipc_tt.h 30 Apr 2007 20:30:11 -0000 1.2.2.1 +++ kern/ipc_tt.h 20 Jul 2008 13:31:15 -0000 @@ -86,4 +86,7 @@ convert_port_to_space(struct ipc_port *) extern void space_deallocate(ipc_space_t); +mach_port_t +mach_reply_port (void); + #endif /* _KERN_IPC_TT_H_ */ Index: kern/machine.h =================================================================== RCS file: kern/machine.h diff -N kern/machine.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ kern/machine.h 20 Jul 2008 13:31:15 -0000 @@ -0,0 +1,58 @@ +/* + * Machine abstraction functions + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * Machine abstraction functions. + * + */ + +#ifndef _MACHINE_H_ +#define _MACHINE_H_ + +#include + +/* + * cpu_up: + * + * Flag specified cpu as up and running. Called when a processor comes + * online. + */ +extern void cpu_up (int); + +/* + * processor_assign() changes the processor set that a processor is + * assigned to. Any previous assignment in progress is overridden. + * Synchronizes with assignment completion if wait is TRUE. + */ +extern kern_return_t processor_assign (processor_t, processor_set_t, boolean_t); + +/* + * processor_shutdown() queues a processor up for shutdown. + * Any assignment in progress is overriden. It does not synchronize + * with the shutdown (can be called from interrupt level). + */ +extern kern_return_t processor_shutdown (processor_t); + +/* + * action_thread() shuts down processors or changes their assignment. + */ +extern void action_thread_continue (void); + +#endif /* _MACHINE_H_ */ Index: kern/processor.h =================================================================== RCS file: /sources/hurd/gnumach/kern/processor.h,v retrieving revision 1.1.1.1.4.1 diff -u -p -r1.1.1.1.4.1 processor.h --- kern/processor.h 15 Oct 2006 14:59:04 -0000 1.1.1.1.4.1 +++ kern/processor.h 20 Jul 2008 13:31:15 -0000 @@ -237,12 +237,12 @@ typedef mach_port_t *processor_set_name_ #ifdef KERNEL #if MACH_HOST -extern void pset_sys_bootstrap(void); extern void pset_sys_init(void); #endif /* MACH_HOST */ /* Pset internal functions */ +extern void pset_sys_bootstrap(void); extern void pset_reference(processor_set_t); extern void pset_deallocate(processor_set_t); extern void pset_remove_processor(processor_set_t, processor_t); Index: kern/sched_prim.h =================================================================== RCS file: /sources/hurd/gnumach/kern/sched_prim.h,v retrieving revision 1.1.1.1.4.2 diff -u -p -r1.1.1.1.4.2 sched_prim.h --- kern/sched_prim.h 16 Jul 2008 00:06:49 -0000 1.1.1.1.4.2 +++ kern/sched_prim.h 20 Jul 2008 13:31:15 -0000 @@ -108,7 +108,14 @@ extern void update_priority( thread_t thread); extern void compute_my_priority( thread_t thread); - +extern void thread_bind( + thread_t thread, + processor_t processor); +extern void compute_priority( + thread_t thread, + boolean_t resched); +extern void thread_timeout_setup( + register thread_t thread); /* * Routines defined as macros Index: kern/startup.c =================================================================== RCS file: /sources/hurd/gnumach/kern/startup.c,v retrieving revision 1.3.2.9 diff -u -p -r1.3.2.9 startup.c --- kern/startup.c 17 Jul 2008 00:28:05 -0000 1.3.2.9 +++ kern/startup.c 20 Jul 2008 13:31:15 -0000 @@ -34,6 +34,7 @@ #include #include #include +#include #include #include #include @@ -51,6 +52,8 @@ #include #include #include +#include +#include #include #include #include Index: kern/syscall_subr.c =================================================================== RCS file: /sources/hurd/gnumach/kern/syscall_subr.c,v retrieving revision 1.2.2.4 diff -u -p -r1.2.2.4 syscall_subr.c --- kern/syscall_subr.c 30 Apr 2007 20:30:11 -0000 1.2.2.4 +++ kern/syscall_subr.c 20 Jul 2008 13:31:15 -0000 @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -62,9 +63,6 @@ * lock and then be a good citizen and really suspend. */ -extern void thread_depress_priority(thread_t, mach_msg_timeout_t); -extern kern_return_t thread_depress_abort(thread_t); - void swtch_continue(void) { register processor_t myprocessor; Index: kern/syscall_subr.h =================================================================== RCS file: /sources/hurd/gnumach/kern/syscall_subr.h,v retrieving revision 1.2.2.2 diff -u -p -r1.2.2.2 syscall_subr.h --- kern/syscall_subr.h 30 Apr 2007 20:45:01 -0000 1.2.2.2 +++ kern/syscall_subr.h 20 Jul 2008 13:31:16 -0000 @@ -24,6 +24,8 @@ * the rights to redistribute these changes. */ +#include +#include #include #ifndef _KERN_SYSCALL_SUBR_H_ @@ -34,4 +36,24 @@ extern int swtch_pri(int); extern int thread_switch(mach_port_t, int, mach_msg_timeout_t); extern void thread_depress_timeout(thread_t); +/* + * thread_depress_abort: + * + * Prematurely abort priority depression if there is one. + */ +extern kern_return_t thread_depress_abort (thread_t); + +/* + * thread_depress_priority + * + * Depress thread's priority to lowest possible for specified period. + * Intended for use when thread wants a lock but doesn't know which + * other thread is holding it. As with thread_switch, fixed + * priority threads get exactly what they asked for. Users access + * this by the SWITCH_OPTION_DEPRESS option to thread_switch. A Time + * of zero will result in no timeout being scheduled. + */ +extern void +thread_depress_priority (thread_t, mach_msg_timeout_t); + #endif /* _KERN_SYSCALL_SUBR_H_ */ Index: kern/syscall_sw.c =================================================================== RCS file: /sources/hurd/gnumach/kern/syscall_sw.c,v retrieving revision 1.2.2.6 diff -u -p -r1.2.2.6 syscall_sw.c --- kern/syscall_sw.c 17 Jul 2008 01:02:02 -0000 1.2.2.6 +++ kern/syscall_sw.c 20 Jul 2008 13:31:16 -0000 @@ -29,6 +29,7 @@ #include #include +#include #include /* Include declarations of the trap functions. */ Index: kern/task.h =================================================================== RCS file: /sources/hurd/gnumach/kern/task.h,v retrieving revision 1.3.2.6 diff -u -p -r1.3.2.6 task.h --- kern/task.h 7 May 2007 22:04:54 -0000 1.3.2.6 +++ kern/task.h 20 Jul 2008 13:31:16 -0000 @@ -149,6 +149,7 @@ extern kern_return_t task_assign( extern kern_return_t task_assign_default( task_t task, boolean_t assign_threads); +extern void consider_task_collect(void); /* * Internal only routines Index: kern/thread.c =================================================================== RCS file: /sources/hurd/gnumach/kern/thread.c,v retrieving revision 1.3.4.9 diff -u -p -r1.3.4.9 thread.c --- kern/thread.c 5 Feb 2007 21:09:36 -0000 1.3.4.9 +++ kern/thread.c 20 Jul 2008 13:31:16 -0000 @@ -42,12 +42,15 @@ #include #include #include +#include +#include #include #include #include #include #include #include +#include #include #include #include Index: kern/thread.h =================================================================== RCS file: /sources/hurd/gnumach/kern/thread.h,v retrieving revision 1.2.4.5 diff -u -p -r1.2.4.5 thread.h --- kern/thread.h 16 Jul 2008 00:51:05 -0000 1.2.4.5 +++ kern/thread.h 20 Jul 2008 13:31:16 -0000 @@ -318,6 +318,7 @@ extern kern_return_t thread_assign( processor_set_t new_pset); extern kern_return_t thread_assign_default( thread_t thread); +extern void stack_collect(void); #endif /* Index: linux/pcmcia-cs/glue/pcmcia_glue.h =================================================================== RCS file: /sources/hurd/gnumach/linux/pcmcia-cs/glue/Attic/pcmcia_glue.h,v retrieving revision 1.1.2.2 diff -u -p -r1.1.2.2 pcmcia_glue.h --- linux/pcmcia-cs/glue/pcmcia_glue.h 15 Oct 2006 14:59:05 -0000 1.1.2.2 +++ linux/pcmcia-cs/glue/pcmcia_glue.h 20 Jul 2008 13:31:17 -0000 @@ -257,7 +257,7 @@ init_dev_name(struct net_device *dev, de /* * Debugging convenience. */ -extern void Debugger(void); +/* extern void Debugger(void); */ /* Index: util/putchar.c =================================================================== RCS file: /sources/hurd/gnumach/util/Attic/putchar.c,v retrieving revision 1.1.1.1.4.1 diff -u -p -r1.1.1.1.4.1 putchar.c --- util/putchar.c 14 Nov 2006 22:59:59 -0000 1.1.1.1.4.1 +++ util/putchar.c 20 Jul 2008 13:31:18 -0000 @@ -21,6 +21,8 @@ * Author: Bryan Ford, University of Utah CSL */ +#include + int putchar(int c) { cnputc(c); Index: util/putchar.h =================================================================== RCS file: util/putchar.h diff -N util/putchar.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ util/putchar.h 20 Jul 2008 13:31:18 -0000 @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * Simple putchar implementation header. + * + */ + +#ifndef _PUTCHAR_H_ +#define _PUTCHAR_H_ + +#include + +extern int putchar(int c); + +#endif /* _PUTCHAR_H_ */ Index: util/puts.c =================================================================== RCS file: /sources/hurd/gnumach/util/Attic/puts.c,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 puts.c --- util/puts.c 25 Feb 1997 21:28:35 -0000 1.1.1.1 +++ util/puts.c 20 Jul 2008 13:31:18 -0000 @@ -21,6 +21,9 @@ * Author: Bryan Ford, University of Utah CSL */ +#include +#include + /* Simple puts() implementation that just uses putchar(). Note that our libc's printf() is implemented in terms of only puts() and putchar(), so that's all we need. */ Index: vm/memory_object.c =================================================================== RCS file: /sources/hurd/gnumach/vm/memory_object.c,v retrieving revision 1.2.2.4 diff -u -p -r1.2.2.4 memory_object.c --- vm/memory_object.c 5 May 2007 00:30:31 -0000 1.2.2.4 +++ vm/memory_object.c 20 Jul 2008 13:31:18 -0000 @@ -41,6 +41,7 @@ #include #include +#include #include #include #include Index: vm/memory_object.h =================================================================== RCS file: /sources/hurd/gnumach/vm/memory_object.h,v retrieving revision 1.2.2.1 diff -u -p -r1.2.2.1 memory_object.h --- vm/memory_object.h 5 May 2007 00:30:31 -0000 1.2.2.1 +++ vm/memory_object.h 20 Jul 2008 13:31:19 -0000 @@ -36,4 +36,14 @@ extern void memory_manager_default_init( extern ipc_port_t memory_manager_default; +extern kern_return_t memory_object_data_supply ( + vm_object_t object, + vm_offset_t offset, + vm_map_copy_t data_copy, + unsigned int data_cnt, + vm_prot_t lock_value, + boolean_t precious, + ipc_port_t reply_to, + mach_msg_type_name_t reply_to_type); + #endif /* _VM_MEMORY_OBJECT_H_ */ Index: vm/vm_init.c =================================================================== RCS file: /sources/hurd/gnumach/vm/vm_init.c,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 vm_init.c --- vm/vm_init.c 25 Feb 1997 21:28:36 -0000 1.1.1.1 +++ vm/vm_init.c 20 Jul 2008 13:31:19 -0000 @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include Index: vm/vm_kern.c =================================================================== RCS file: /sources/hurd/gnumach/vm/vm_kern.c,v retrieving revision 1.1.1.1.4.6 diff -u -p -r1.1.1.1.4.6 vm_kern.c --- vm/vm_kern.c 15 Jul 2008 23:11:10 -0000 1.1.1.1.4.6 +++ vm/vm_kern.c 20 Jul 2008 13:31:19 -0000 @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include Index: vm/vm_kern.h =================================================================== RCS file: /sources/hurd/gnumach/vm/vm_kern.h,v retrieving revision 1.2.2.1 diff -u -p -r1.2.2.1 vm_kern.h --- vm/vm_kern.h 5 May 2007 00:30:31 -0000 1.2.2.1 +++ vm/vm_kern.h 20 Jul 2008 13:31:19 -0000 @@ -77,4 +77,9 @@ extern vm_map_t kernel_map; extern vm_map_t kernel_pageable_map; extern vm_map_t ipc_kernel_map; +extern boolean_t projected_buffer_in_range( + vm_map_t map, + vm_offset_t start, + vm_offset_t end); + #endif /* _VM_VM_KERN_H_ */ Index: vm/vm_map.c =================================================================== RCS file: /sources/hurd/gnumach/vm/vm_map.c,v retrieving revision 1.3.2.9 diff -u -p -r1.3.2.9 vm_map.c --- vm/vm_map.c 17 Jul 2008 01:22:38 -0000 1.3.2.9 +++ vm/vm_map.c 20 Jul 2008 13:31:20 -0000 @@ -42,10 +42,12 @@ #include #include #include +#include #include #include #include #include +#include #include #include Index: vm/vm_map.h =================================================================== RCS file: /sources/hurd/gnumach/vm/vm_map.h,v retrieving revision 1.2.2.3 diff -u -p -r1.2.2.3 vm_map.h --- vm/vm_map.h 16 Jul 2008 00:51:05 -0000 1.2.2.3 +++ vm/vm_map.h 20 Jul 2008 13:31:20 -0000 @@ -429,6 +429,29 @@ extern kern_return_t vm_map_machine_attr extern void vm_map_entry_delete(vm_map_t, vm_map_entry_t); /* + * vm_map_delete: [ internal use only ] + * + * Deallocates the given address range from the target + * map. + */ +extern kern_return_t vm_map_delete( + vm_map_t map, + vm_offset_t start, + vm_offset_t end); + +/* + * + * vm_map_copyout_page_list: + * + * Version of vm_map_copyout() for page list vm map copies. + * + */ +extern kern_return_t vm_map_copyout_page_list( + vm_map_t dst_map, + vm_offset_t *dst_addr, /* OUT */ + vm_map_copy_t copy); + +/* * Functions implemented as macros */ #define vm_map_min(map) ((map)->min_offset) @@ -466,6 +489,51 @@ extern kern_return_t vm_map_pageable_com extern vm_object_t vm_submap_object; /* + * vm_map_copyin_object: + * + * Create a copy object from an object. + * Our caller donates an object reference. + */ +extern kern_return_t vm_map_copyin_object( + vm_object_t object, + vm_offset_t offset, /* offset of region in object */ + vm_size_t size, /* size of region in object */ + vm_map_copy_t *copy_result); /* OUT */ + +/* + * vm_map_submap: [ kernel use only ] + * + * Mark the given range as handled by a subordinate map. + * + * This range must have been created with vm_map_find using + * the vm_submap_object, and no other operations may have been + * performed on this range prior to calling vm_map_submap. + * + * Only a limited number of operations can be performed + * within this rage after calling vm_map_submap: + * vm_fault + * [Don't try vm_map_copyin!] + * + * To remove a submapping, one must first remove the + * range from the superior map, and then destroy the + * submap (if desired). [Better yet, don't try it.] + */ +extern kern_return_t vm_map_submap( + vm_map_t map, + vm_offset_t start, + vm_offset_t end, + vm_map_t submap); + +/* + * vm_map_copy_page_discard: + * + * Get rid of the pages in a page_list copy. If the pages are + * stolen, they are freed. If the pages are not stolen, they + * are unbusied, and associated state is cleaned up. + */ +void vm_map_copy_page_discard (vm_map_copy_t copy); + +/* * Wait and wakeup macros for in_transition map entries. */ #define vm_map_entry_wait(map, interruptible) \ @@ -477,4 +545,22 @@ extern vm_object_t vm_submap_object; #define vm_map_entry_wakeup(map) thread_wakeup((event_t)&(map)->hdr) +/* + * This routine is called only when it is known that + * the entry must be split. + */ +extern void _vm_map_clip_start( + struct vm_map_header *map_header, + vm_map_entry_t entry, + vm_offset_t start); + +/* + * vm_map_clip_end: [ internal use only ] + * + * Asserts that the given entry ends at or before + * the specified address; if necessary, + * it splits the entry into two. + */ +void _vm_map_clip_end(); + #endif /* _VM_VM_MAP_H_ */ Index: vm/vm_pageout.c =================================================================== RCS file: /sources/hurd/gnumach/vm/vm_pageout.c,v retrieving revision 1.7.2.5 diff -u -p -r1.7.2.5 vm_pageout.c --- vm/vm_pageout.c 3 Dec 2006 21:50:21 -0000 1.7.2.5 +++ vm/vm_pageout.c 20 Jul 2008 13:31:20 -0000 @@ -34,6 +34,7 @@ * The proverbial page-out daemon. */ +#include #include #include #include @@ -42,12 +43,14 @@ #include #include #include +#include #include #include #include #include #include #include +#include #include Index: vm/vm_resident.c =================================================================== RCS file: /sources/hurd/gnumach/vm/vm_resident.c,v retrieving revision 1.7.4.8 diff -u -p -r1.7.4.8 vm_resident.c --- vm/vm_resident.c 4 Jan 2007 23:51:02 -0000 1.7.4.8 +++ vm/vm_resident.c 20 Jul 2008 13:31:20 -0000 @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include Index: vm/vm_resident.h =================================================================== RCS file: vm/vm_resident.h diff -N vm/vm_resident.h --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ vm/vm_resident.h 20 Jul 2008 13:31:20 -0000 @@ -0,0 +1,45 @@ +/* + * Resident memory management module functions. + * Copyright (C) 2008 Free Software Foundation, Inc. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + * + * Author: Barry deFreese. + */ +/* + * Resident memory management module functions. + * + */ + +#ifndef _VM_RESIDENT_H_ +#define _VM_RESIDENT_H_ + +#include + +/* + * vm_page_replace: + * + * Exactly like vm_page_insert, except that we first + * remove any existing page at the given offset in object + * and we don't do deactivate-behind. + * + * The object and page must be locked. + */ +extern void vm_page_replace ( + register vm_page_t mem, + register vm_object_t object, + register vm_offset_t offset); + +#endif /* _VM_RESIDENT_H_ */ Index: vm/vm_user.c =================================================================== RCS file: /sources/hurd/gnumach/vm/vm_user.c,v retrieving revision 1.1.1.1 diff -u -p -r1.1.1.1 vm_user.c --- vm/vm_user.c 25 Feb 1997 21:28:37 -0000 1.1.1.1 +++ vm/vm_user.c 20 Jul 2008 13:31:21 -0000 @@ -41,6 +41,7 @@ #include #include #include +#include #include #include #include