summaryrefslogtreecommitdiff
path: root/doc/mach.texi
AgeCommit message (Collapse)Author
2015-07-09Allow non-privileged tasks to wire 64KiB task memorySamuel Thibault
* doc/mach.texi (vm_wire): Document that the host port does not have to be privileged. * include/mach/mach_hosts.defs (vm_wire): Use mach_port_t instead of host_priv_t. * vm/vm_map.h (vm_map): Add user_wired field. * vm/vm_map.c (vm_map_setup): Initialize user_wired field to 0. (vm_map_pageable_common, vm_map_entry_delete, vm_map_copy_overwrite, vm_map_copyout_page_list, vm_map_copyin_page_list): When switching user_wired_count field of entry between 0 and non-0, accumulate the corresponding size into the user_wired field of map. * vm/vm_user.c (vm_wire): Turn host parameter into port parameter, and inline a version of convert_port_to_host_priv which records whether the host port is privileged or not. When it is not privileged, check whether the additional amount to user_wired will overcome 64KiB.
2014-11-10Fix documentation for vm_mapSamuel Thibault
doc/mach.texi (vm_map): Document that vm_map uses the address as a starting hint even when anywhere is TRUE.
2014-10-10doc: restore section `Inherited Ports'Justus Winter
Previously, the section `Inherited Ports' was commented out. This was done, as the functionality was unused by the Hurd. The functions `mach_ports_register' and `mach_ports_lookup' were never removed, and are exposed to user space. This patch brings the documentation back and adds a remark at the top, that the section documents the original intentions for this interface. I chose bringing back the documentation over removing the functionality because I like to make use of it as a method for service discovery that is deliberately orthogonal to the way the service lookup is usually done in the Hurd. This can be used to implement robust low-level debugging facilities. * doc/mach.texi: Restore section `Inherited Ports'.
2014-10-01ipc: provide the protected payload in ipc_kmsg_copyout_headerJustus Winter
* ipc/ipc_kmsg.c (ipc_kmsg_copyout_header): If a protected payload is set for the destination port, provide it in msgh_protected_payload. * ipc/mach_msg.c (mach_msg_trap): Likewise in the fast paths. * doc/mach.texi (Message Receive): Document message semantics with protected payloads.
2014-10-01include: define MACH_MSG_TYPE_PROTECTED_PAYLOADJustus Winter
* include/mach/message.h: Define MACH_MSG_TYPE_PROTECTED_PAYLOAD. (MACH_MSG_TYPE_LAST): Adjust accordingly. * doc/mach.texi (Message Format): Document MACH_MSG_TYPE_PROTECTED_PAYLOAD.
2014-10-01include: add msgh_protected_payload to mach_msg_header_tJustus Winter
* include/mach/message.h (mach_msg_header_t): Add msgh_protected_payload as a union with msgh_local_port. * doc/mach.texi (Message Format): Document msgh_protected_payload.
2014-10-01ipc: implement mach_port_{set,clear}_protected_payloadJustus Winter
* include/mach/mach_port.defs: Add mach_port_{set,clear}_protected_payload. * ipc/mach_port.c: Implement mach_port_{set,clear}_protected_payload. * doc/mach.texi (Receive Rights): Document mach_port_{set,clear}_protected_payload.
2014-06-11doc: explain the floating point flag in kdb outputJustus Winter
* doc/mach.texi (Kernel Debugger Commands): Explain the floating point flag.
2014-04-30doc: fix the number of prioritiesJustus Winter
The number of priorities has been changed from 32 to 50 in 6a234201081156e6d5742e7eeabb68418b518fad. * doc/mach.texi: Update accordingly.
2014-02-05doc: document task_set_nameJustus Winter
* doc/mach.texi (Task Information): Document the new task_set_name procedure.
2013-09-24Drop Invariant, Front-Cover and Back-Cover referencesSamuel Thibault
The referenced Invariant sections does not exist, and the front and back covers do not hold much information.
2013-05-15Fix itemization errors in the texinfo documentationRichard Braun
* doc/mach.texi: Replace @itemx with @item for --enable-tulip and --enable-epic100.
2013-02-04Document dwatchSamuel Thibault
* doc/mach.texi: Add dwatch documentation.
2011-01-31* doc/mach.texi (device_set_filter): Document filter header.Diego Nieto Cid
Acked-by: Richard Braun <rbraun@sceen.net>
2009-12-16Add Xen supportSamuel Thibault
2009-03-11 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/i386/vm_param.h (VM_MIN_KERNEL_ADDRESS) [MACH_XEN]: Set to 0x20000000. * i386/i386/i386asm.sym (pfn_list) [VM_MIN_KERNEL_ADDRESS == LINEAR_MIN_KERNEL_ADDRESS]: Define to constant PFN_LIST. 2009-02-27 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/intel/pmap.c [MACH_HYP] (INVALIDATE_TLB): Call hyp_invlpg instead of flush_tlb when e - s is compile-time known to be PAGE_SIZE. 2008-11-27 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/configfrag.ac (enable_pae): Enable by default on the Xen platform. 2007-11-14 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/i386at/model_dep.c (machine_relax): New function. (c_boot_entry): Refuse to boot as dom0. 2007-10-17 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/i386/fpu.c [MACH_XEN]: Disable unused fpintr(). 2007-08-12 Samuel Thibault <samuel.thibault@ens-lyon.org> * Makefile.am (clib_routines): Add _START. * i386/xen/xen_boothdr: Use _START for VIRT_BASE and PADDR_OFFSET. Add GUEST_VERSION and XEN_ELFNOTE_FEATURES. 2007-06-13 Samuel Thibault <samuel.thibault@ens-lyon.org> * i386/i386/user_ldt.h (user_ldt) [MACH_XEN]: Add alloc field. * i386/i386/user_ldt.c (i386_set_ldt) [MACH_XEN]: Round allocation of LDT to a page, set back LDT pages read/write before freeing them. (user_ldt_free) [MACH_XEN]: Likewise. 2007-04-18 Samuel Thibault <samuel.thibault@ens-lyon.org> * device/ds_routines.c [MACH_HYP]: Add hypervisor block and net devices. 2007-02-19 Thomas Schwinge <tschwinge@gnu.org> * i386/xen/Makefrag.am [PLATFORM_xen] (gnumach_LINKFLAGS): Define. * Makefrag.am: Include `xen/Makefrag.am'. * configure.ac: Include `xen/configfrag.ac'. (--enable-platform): Support the `xen' platform. * i386/configfrag.ac: Likewise. * i386/Makefrag.am [PLATFORM_xen]: Include `i386/xen/Makefrag.am'. 2007-02-19 Samuel Thibault <samuel.thibault@ens-lyon.org> Thomas Schwinge <tschwinge@gnu.org> * i386/xen/Makefrag.am: New file. * xen/Makefrag.am: Likewise. * xen/configfrag.ac: Likewise. 2007-02-11 (and later dates) Samuel Thibault <samuel.thibault@ens-lyon.org> Xen support * Makefile.am (clib_routines): Add _start. * Makefrag.am (include_mach_HEADERS): Add include/mach/xen.h. * device/cons.c (cnputc): Call hyp_console_write. * i386/Makefrag.am (libkernel_a_SOURCES): Move non-Xen source to [PLATFORM_at]. * i386/i386/debug_trace.S: Include <i386/xen.h> * i386/i386/fpu.c [MACH_HYP] (init_fpu): Call set_ts() and clear_ts(), do not enable CR0_EM. * i386/i386/gdt.c: Include <mach/xen.h> and <intel/pmap.h>. [MACH_XEN]: Make gdt array extern. [MACH_XEN] (gdt_init): Register gdt with hypervisor. Request 4gb segments assist. Shift la_shift. [MACH_PSEUDO_PHYS] (gdt_init): Shift pfn_list. * i386/i386/gdt.h [MACH_XEN]: Don't define KERNEL_LDT and LINEAR_DS. * i386/i386/i386asm.sym: Include <i386/xen.h>. [MACH_XEN]: Remove KERNEL_LDT, Add shared_info's CPU_CLI, CPU_PENDING, CPU_PENDING_SEL, PENDING, EVTMASK and CR2. * i386/i386/idt.c [MACH_HYP] (idt_init): Register trap table with hypervisor. * i386/i386/idt_inittab.S: Include <i386/i386asm.h>. [MACH_XEN]: Set IDT_ENTRY() for hypervisor. Set trap table terminator. * i386/i386/ktss.c [MACH_XEN] (ktss_init): Request exception task switch from hypervisor. * i386/i386/ldt.c: Include <mach/xen.h> and <intel/pmap.h> [MACH_XEN]: Make ldt array extern. [MACH_XEN] (ldt_init): Set ldt readwrite. [MACH_HYP] (ldt_init): Register ldt with hypervisor. * i386/i386/locore.S: Include <i386/xen.h>. Handle KERNEL_RING == 1 case. [MACH_XEN]: Read hyp_shared_info's CR2 instead of %cr2. [MACH_PSEUDO_PHYS]: Add mfn_to_pfn computation. [MACH_HYP]: Drop Cyrix I/O-based detection. Read cr3 instead of %cr3. Make hypervisor call for pte invalidation. * i386/i386/mp_desc.c: Include <mach/xen.h>. [MACH_HYP] (mp_desc_init): Panic. * i386/i386/pcb.c: Include <mach/xen.h>. [MACH_XEN] (switch_ktss): Request stack switch from hypervisor. [MACH_HYP] (switch_ktss): Request ldt and gdt switch from hypervisor. * i386/i386/phys.c: Include <mach/xen.h> [MACH_PSEUDO_PHYS] (kvtophys): Do page translation. * i386/i386/proc_reg.h [MACH_HYP] (cr3): New declaration. (set_cr3, get_cr3, set_ts, clear_ts): Implement macros. * i386/i386/seg.h [MACH_HYP]: Define KERNEL_RING macro. Include <mach/xen.h> [MACH_XEN] (fill_descriptor): Register descriptor with hypervisor. * i386/i386/spl.S: Include <i386/xen.h> and <i386/i386/asm.h> [MACH_XEN] (pic_mask): #define to int_mask. [MACH_XEN] (SETMASK): Implement. * i386/i386/vm_param.h [MACH_XEN] (HYP_VIRT_START): New macro. [MACH_XEN]: Set VM_MAX_KERNEL_ADDRESS to HYP_VIRT_START- LINEAR_MIN_KERNEL_ADDRESS + VM_MIN_KERNEL_ADDRESS. Increase KERNEL_STACK_SIZE and INTSTACK_SIZE to 4 pages. * i386/i386at/conf.c [MACH_HYP]: Remove hardware devices, add hypervisor console device. * i386/i386at/cons_conf.c [MACH_HYP]: Add hypervisor console device. * i386/i386at/model_dep.c: Include <sys/types.h>, <mach/xen.h>. [MACH_XEN] Include <xen/console.h>, <xen/store.h>, <xen/evt.h>, <xen/xen.h>. [MACH_PSEUDO_PHYS]: New boot_info, mfn_list, pfn_list variables. [MACH_XEN]: New la_shift variable. [MACH_HYP] (avail_next, mem_size_init): Drop BIOS skipping mecanism. [MACH_HYP] (machine_init): Call hyp_init(), drop hardware initialization. [MACH_HYP] (machine_idle): Call hyp_idle(). [MACH_HYP] (halt_cpu): Call hyp_halt(). [MACH_HYP] (halt_all_cpus): Call hyp_reboot() or hyp_halt(). [MACH_HYP] (i386at_init): Initialize with hypervisor. [MACH_XEN] (c_boot_entry): Add Xen-specific initialization. [MACH_HYP] (init_alloc_aligned, pmap_valid_page): Drop zones skipping mecanism. * i386/intel/pmap.c: Include <mach/xen.h>. [MACH_PSEUDO_PHYS] (WRITE_PTE): Do page translation. [MACH_HYP] (INVALIDATE_TLB): Request invalidation from hypervisor. [MACH_XEN] (pmap_map_bd, pmap_create, pmap_destroy, pmap_remove_range) (pmap_page_protect, pmap_protect, pmap_enter, pmap_change_wiring) (pmap_attribute_clear, pmap_unmap_page_zero, pmap_collect): Request MMU update from hypervisor. [MACH_XEN] (pmap_bootstrap): Request pagetable initialization from hypervisor. [MACH_XEN] (pmap_set_page_readwrite, pmap_set_page_readonly) (pmap_set_page_readonly_init, pmap_clear_bootstrap_pagetable) (pmap_map_mfn): New functions. * i386/intel/pmap.h [MACH_XEN] (INTEL_PTE_GLOBAL): Disable global page support. [MACH_PSEUDO_PHYS] (pte_to_pa): Do page translation. [MACH_XEN] (pmap_set_page_readwrite, pmap_set_page_readonly) (pmap_set_page_readonly_init, pmap_clear_bootstrap_pagetable) (pmap_map_mfn): Declare functions. * i386/i386/xen.h: New file. * i386/xen/xen.c: New file. * i386/xen/xen_boothdr.S: New file. * i386/xen/xen_locore.S: New file. * include/mach/xen.h: New file. * kern/bootstrap.c [MACH_XEN] (boot_info): Declare variable. [MACH_XEN] (bootstrap_create): Rebase multiboot header. * kern/debug.c: Include <mach/xen.h>. [MACH_HYP] (panic): Call hyp_crash() without delay. * linux/dev/include/asm-i386/segment.h [MACH_HYP] (KERNEL_CS) (KERNEL_DS): Use ring 1. * xen/block.c: New file. * xen/block.h: Likewise. * xen/console.c: Likewise. * xen/console.h: Likewise. * xen/evt.c: Likewise. * xen/evt.h: Likewise. * xen/grant.c: Likewise. * xen/grant.h: Likewise. * xen/net.c: Likewise. * xen/net.h: Likewise. * xen/ring.c: Likewise. * xen/ring.h: Likewise. * xen/store.c: Likewise. * xen/store.h: Likewise. * xen/time.c: Likewise. * xen/time.h: Likewise. * xen/xen.c: Likewise. * xen/xen.h: Likewise. * xen/public/COPYING: Import file from Xen. * xen/public/callback.h: Likewise. * xen/public/dom0_ops.h: Likewise. * xen/public/domctl.h: Likewise. * xen/public/elfnote.h: Likewise. * xen/public/elfstructs.h: Likewise. * xen/public/event_channel.h: Likewise. * xen/public/features.h: Likewise. * xen/public/grant_table.h: Likewise. * xen/public/kexec.h: Likewise. * xen/public/libelf.h: Likewise. * xen/public/memory.h: Likewise. * xen/public/nmi.h: Likewise. * xen/public/physdev.h: Likewise. * xen/public/platform.h: Likewise. * xen/public/sched.h: Likewise. * xen/public/sysctl.h: Likewise. * xen/public/trace.h: Likewise. * xen/public/vcpu.h: Likewise. * xen/public/version.h: Likewise. * xen/public/xen-compat.h: Likewise. * xen/public/xen.h: Likewise. * xen/public/xencomm.h: Likewise. * xen/public/xenoprof.h: Likewise. * xen/public/arch-x86/xen-mca.h: Likewise. * xen/public/arch-x86/xen-x86_32.h: Likewise. * xen/public/arch-x86/xen-x86_64.h: Likewise. * xen/public/arch-x86/xen.h: Likewise. * xen/public/arch-x86_32.h: Likewise. * xen/public/arch-x86_64.h: Likewise. * xen/public/io/blkif.h: Likewise. * xen/public/io/console.h: Likewise. * xen/public/io/fbif.h: Likewise. * xen/public/io/fsif.h: Likewise. * xen/public/io/kbdif.h: Likewise. * xen/public/io/netif.h: Likewise. * xen/public/io/pciif.h: Likewise. * xen/public/io/protocols.h: Likewise. * xen/public/io/ring.h: Likewise. * xen/public/io/tpmif.h: Likewise. * xen/public/io/xenbus.h: Likewise. * xen/public/io/xs_wire.h: Likewise.
2009-06-182008-11-13 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
[task #8135 -- PAE for GNU Mach] * i386/configfrag.ac (enable_pae): Add checks: this is ix86-only. * doc/mach.texi (Configuration): Document the new option.
2009-06-182007-11-08 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* doc/mach.texi: Do the copyright and licensing things as suggested by the GNU Texinfo manual.
2009-06-182007-05-02 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* configure.ac (--disable-default-device-drivers): Transform into... (--enable-device-drivers): ... this new option and extend it. * i386/configfrag.ac (--enable-lpr): Adapt to that. * linux/configfrag.ac (AC_OPTION_Linux_ix86_at, AC_Linux_DRIVER): Likewise. (AC_Linux_DRIVER_qemu): New definition. Use it for the `floppy', `ide' and `ne' device drivers. * doc/mach.texi: Document all that.
2009-06-182007-03-24 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* doc/mach.texi: Fix a typo and the url for GNU GRUB.
2009-06-182007-02-04 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* doc/mach.texi (thread_switch): Enhance a bit.
2009-06-182007-02-04 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* doc/mach.texi: Fix unusual hyphens.
2009-06-182007-01-26 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* doc/mach.texi: Fix the last change.
2009-06-182007-01-22 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* COPYING: Update via GNU automake 1.10. * doc/fdl.texi: Update from <http://www.gnu.org/licenses/fdl.texi>. * doc/gpl.texi: Update from <http://www.gnu.org/licenses/gpl.texi>. * doc/mach.texi: Use the GFDL 1.2.
2009-06-182007-01-21 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* doc/mach.texi: Many typos fixed. Submitted by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
2009-06-182006-11-17 Constantine Kousoulos <wuwei@freemail.gr>Thomas Schwinge
Thomas Schwinge <tschwinge@gnu.org> * i386/README-Drivers: Move most of the text into... * doc/mach.texi: ... here and update a number of things. (UPDATED): Don't override.
2009-06-182006-09-23 Stefan Siegl <stesie@brokenpipe.de>Stefan Siegl
* i386/linux/configure.ac (AC_PCMCIA_OPTION): New function. (--disable-pcmcia-isa): New configuration option to disable ISA-bus support in the pcmcia core, which is otherwise enabled now by default. * doc/mach.texi (Configuration): Briefly document the new configuration option. * i386/README-Drivers: Likewise.
2009-06-182006-09-20 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* Drivers.macros (AC_DRIVER_ALIAS): Remove definition. (AC_DRIVER): Extend to take a `description' parameter and consider `$enable_default_device_drivers'. (AC_DRIVER_nodef): New definition. * configure.in (options kdb, kmsg): Remove redundancy. * i386/configure.in (option default-device-drivers): New option. (option lpr): Consider `$enable_default_device_drivers'. * i386/linux/configure.ac: Rework substantially. Remove all aliases. Rename some of the device driver options. (option default-device-drivers): New option. (linux_DRIVER): Take care about a `description' parameter and don't invoke AC_DRIVER_ALIAS. (linux_DRIVER_nodef): New definition. Adopt all usages of AC_DRIVER and linux_DRIVER to provide a `description' parameter. (g_NCR5380, NCR53c406a, eata_dma, wavelan, atp): Change from AC_DRIVER to AC_DRIVER_nodef to have these device drivers disabled by default. * doc/mach.texi: Add a note about the outdatedness to the configuration option table. * i386/README-Drivers: Update.
2009-06-182006-07-31 Stefan Siegl <stesie@brokenpipe.de>Thomas Schwinge
* doc/mach.texi (Configuration): Document the new PCMCIA drivers a bit more. * i386/README-Drivers: Likewise.
2009-06-182006-07-27 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* doc/mach.texi (Configuration): Very briefly document the new drivers. * i386/README-Drivers: Likewise.
2009-06-182006-01-22 Thomas Schwinge <tschwinge@gnu.org>Thomas Schwinge
* doc/mach.texi (Configuration): Document the recently added drivers. * i386/README-Drivers: Likewise.
2002-03-292002-03-29 Marcus Brinkmann <marcus@g10code.de>Marcus Brinkmann
* doc/mach.texi: End index entry with full stop.
2001-10-062001-10-06 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* doc/mach.texi: Fix direntry.
2001-10-052001-10-05 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* doc/mach.texi: Replace `path name' by `file name' in one place. Replace `illegal' by `invalid' and `to to' by `to' everwhere. * debian/changelog: Prepare for next release.
2001-10-042001-10-04 Marcus Brinkmann <marcus@gnu.org>Marcus Brinkmann
* doc: New directory. * doc/Makefile.in: New file. * doc/gpl.texi: Likewise. * doc/fdl.texi: Likewise. * doc/mach.texi: Likewise. * configure.in: Add doc/Makefile to AC_OUTPUT call. * configure: Regenerated. * Makefile.in (dist): Create directories doc and debian. (doc-files): New variable with documentation files. (debian-files): New variable with Debian packaging files. * debian/rules (stamp-build): Build documentation. (build-gnumach): Install the documentation into the gnumach package. * debian/postrm: New file to install info document. * debian/prerm: New file to install info document.