summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2022-12-21proc: Add task to hashes before requesting death notifySamuel Thibault
In case the task dies very early and thus the notification arrives very early.
2022-12-06Fix *printf specifier for user space mach ports.Flavio Cruz
mach_port_t are mach_port_name_t and thus require %u instead of %lu. Message-Id: <Y42RELMbulK4xaKM@reue>
2022-12-04mach-defpager: assert_backtrace() on panicSamuel Thibault
instead of just exiting: better print a backtrace so we get to know what happened.
2022-12-03startup: Make essential tasks essential to machSamuel Thibault
Whenever a Hurd essential task crashes, startup just reboots the system since there's not much that can be done at that point. When we have a kernel debugger, however, we could at least get crashing information, so let's make Hurd's startup tell the kernel which tasks are essential, so it can trigger the debugger whenever they crash.
2022-12-03mach-defpager: Mark as essentialSamuel Thibault
So we get to know why the system gets stuck if mach-defpager happens to die.
2022-11-21hurd_types.defs: redefine io_statbuf_t, timespec_t and fsys_statfsbuf_t as ↵Flavio Cruz
true structs Message-Id: <Y3BpLsrddifLOR1z@viriathus>
2022-11-15Remove include of hurd/hurd_types.defs in iioctl.defs and rioctl.defsFlavio Cruz
hurd/hurd_types.defs is already included through ioctl_types.defs. Message-Id: <Y3HUZ3KzKnCchYvI@viriathus>
2022-11-13Add ioctl_types.defs to avoid duplication of type definitions.Flavio Cruz
Also change type srtentry_t to use the new struct format. Message-Id: <Y3CKiDS3wszn0G4a@viriathus>
2022-11-13hurd: ensure subsystem directive appears before anything else in *.defsFlavio Cruz
mig is incorrectly initializing basic types twice (init_type) for kernel user and kernel server definitions. To fix this bug, we should initialize the types during a subsystem directive only. This commit ensures all hurd definitions have subsystem at the very start so that these definitions work correctly with a patched mig. Message-Id: <Y3B/9ZCdqYCcd/zf@viriathus>
2022-11-11Define mig type flock_t as a struct instead of array of intsFlavio Cruz
Message-Id: <Y23Sua0dRTrqcxZl@viriathus>
2022-11-09Replace vsprintf with vsnprintf in ext2fs/msg.cFlavio Cruz
Message-Id: <Y2s/UPSCuGap3cv6@viriathus>
2022-11-06Remove duplicate pfinet linux headers that have glue versionsFlavio Cruz
Message-Id: <Y2NNAegVOKg/X7OC@viriathus>
2022-11-05libps: Fix memory leakRichard Braun
Message-Id: <20221105141505.4684-1-rbraun@sceen.net>
2022-11-01Fix parallel buildsSamuel Thibault
As explained on https://www.gnu.org/software/automake/manual/html_node/Multiple-Outputs.html a b: c foo -o a -o b is actually equivalent to a: c foo -o a -o b b: c foo -o a -o b and can thus break in parallel builds, since the foo command may then be called twice. Also, we are here using pattern rules. The automake manual contains various levels of fixing this, using a mere stamp file should be enough for us.
2022-10-31Add --without-rump configure optionSamuel Thibault
To allow cross-builds which cannot use AC_LINK_IFELSE at all.
2022-10-31Add --without-acpica configure optionSamuel Thibault
To allow cross-builds which cannot use AC_CHECK_LIB at all.
2022-10-24Also do not realpath "procfs" pseudo-deviceSamuel Thibault
* sutils/fstab.c (fstab_find_device): Do not realpath "procfs" pseudo-device.
2022-09-26rumpdisk: Link in PIIX IDE driver and ATA common codeSamuel Thibault
2022-09-22pfinet: Fix warningv0.9.git20220925Samuel Thibault
2022-09-22lwip: Fix warningSamuel Thibault
2022-09-22iioctl: restore documenting 10 and 11 as unusedSamuel Thibault
2022-09-22rioctl: Use r not i group ioctl for SIOCADDRT/SIOCDELRTDamien Zammit
Message-Id: <20220922004105.961869-1-damien@zamaudio.com>
2022-09-22lwip: Add missing stubDamien Zammit
Message-Id: <20220922004018.961808-1-damien@zamaudio.com>
2022-09-21Use route.h from glibcSamuel Thibault
Unfortunately the Linux source also uses <net/route.h>, so we have to both make that include the glibc-provided one, and avoid making it emit Linuxish definitions when they would conflict with glibc definitions.
2022-09-20procfs: Populate /proc/route with network routesDamien Zammit
2022-09-20acpi: Convert translator to an emulated mach deviceDamien Zammit
This makes acpi usable as a bootstrap translator. Message-Id: <20220920030035.931113-1-damien@zamaudio.com>
2022-09-12acpi: Remove references to /dev/memDamien Zammit
Message-Id: <20220912103837.556815-5-damien@zamaudio.com>
2022-09-12shutdown: Use new acpi RPC to halt machine, clean upDamien Zammit
This allows clean shutdown of all modern x86 machines (not just qemu) by using the acpi translator to call into libacpica code. Message-Id: <20220912103837.556815-3-damien@zamaudio.com>
2022-09-12acpi: Link translator to libacpica and provide RPCsDamien Zammit
Provides two new acpi RPCs to sleep the machine and to get the irq of any pci device. ACPI mode is enabled by default when the translator is started. NB: Merging this commit means libacpica is a build dep. Message-Id: <20220912103837.556815-2-damien@zamaudio.com>
2022-09-11machdev, pci-arbiter, rumpdisk: Fix race condition in bootstrapDamien Zammit
This fixes a known race condition in bootstrapping by separating the fsys_startup call from the server demuxer loop into two separate functions that the caller can decide when to call. Message-Id: <20220908093229.499494-1-damien@zamaudio.com>
2022-09-11pci-arbiter: Fix type of printf paramDamien Zammit
Message-Id: <20220908093034.499415-1-damien@zamaudio.com>
2022-09-11Add new RPC for pfinet network routesDamien Zammit
Message-Id: <20220909094234.517165-1-damien@zamaudio.com>
2022-08-31defs: Fix typing of iioctlDamien Zammit
After much digging this fixes the new routing ioctls Message-Id: <20220831143032.401732-1-damien@zamaudio.com>
2022-08-30lwip: Add stubs for route ioctlsSamuel Thibault
2022-08-30Fix types of read write and readables methodsSamuel Thibault
This completes 5adb4b834b1e
2022-08-30libdiskfs: Add missing includeSamuel Thibault
2022-08-30libdiskfs: Avoid crashing when stdout/err shuts downv0.9.git20220830Samuel Thibault
stdout/err could shut down for whatever reason (killed the term on /dev/console or whatever). We should not crash just because we lost our ability to print output.
2022-08-29pfinet: Factorize preparing the route requestSamuel Thibault
2022-08-29pfinet: Add SIOCADDRT and SIOCDELRT equivalent iioctlsDamien Zammit
Using a new client side <net/route.h> I was able to clean up the existing options.c in pfinet and add two new ioctls for adding/deleting network routes. /* move to bits/ioctl.h */ struct ifrtreq { char ifname[IFNAMSIZ]; in_addr_t rt_dest; in_addr_t rt_mask; in_addr_t rt_gateway; int rt_flags; int rt_metric; int rt_mtu; int rt_window; int rt_irtt; int rt_tos; int rt_class; }; Message-Id: <20220829102952.369798-1-damien@zamaudio.com>
2022-08-29Fix types of read write and readables methodsEtienne Brateau
Message-Id: <20220829193617.13481-1-etienne.brateau@gmail.com>
2022-08-29Fix missing includeEtienne Brateau
2022-08-28Add missing included headerEtienne Brateau
Build was broken since 6d3b4cea78b22a6562eef4256cfcc40a8d372194 Message-Id: <20220827224239.54097-1-etienne.brateau@gmail.com>
2022-08-23file_exec: Homogeneize adding the gratuitous send rightSamuel Thibault
2022-08-23Fix spurious EINTR while exec() within fakerootSamuel Thibault
The scenario is: - process running inside fakeroot exec()s - fakeroot forwards the exec call - exec starts thrashing the previous process, and notably close its ports - the send port that pointed to fakeroot is thus closed - fakeroot thus receives a no-senders notification - its libports thus interrupts the current RPC on it, i.e. the exec(), because it thinks that the caller is no more, but that was exactly the point of the exec()... - exec tries to interrupt its own RPCs, at best the execution will fail, at worse the process is already thrashed and there's nothing better than burying it for good. The symptom is processes running inside fakeroot seeming randomly crashing with SIGKILL. Making fakeroot keep a send right avoids the no-senders notification, thus the whole interruption (which was meaningless).
2022-08-23storeio: Fix uninitialized err variableSamuel Thibault
2022-08-22Add trivfs_startup_debug() for easier translator developmentLuca Dariz
Basically it is an automation of this: http://walfield.org/pub/people/neal/papers/hurd-misc/manual-bootstrap.txt To launch a storeio translator on FILE: $ storeio -d FILE -T TYPE ARG Message-Id: <20170126213616.26846-1-luca.dariz@gmail.com>
2022-08-22term: Prevent new master while some slaves are still thereSamuel Thibault
The previous master may have gone before all previous slaves have gone. If a slave gets stuck, TTY_OPEN will kept set, and there would be no reset performed in open_hook, thus leaking tty state and data.
2022-08-20Note how we will be able to keep only one pci-arbiter translatorSamuel Thibault
2022-08-15Implement mapping for ROM filesv0.9.git20220818Joan Lledó
* pci-arbiter/device_map.h: * pci-arbiter/device_map.c: * New function: device_map_rom * Copies the whole rom in the arbiter space. * pci-arbiter/pcifs.h: * struct pcifs_dirent: * New field to store the mapping address for each device rom. o pci-arbiter/func_files.h: * pci-arbiter/func_files.c: * read_rom_file: * Retrieves the rom contents from the local space instead of libpciaccess. * pci-arbiter/netfs_impl.c: * netfs_attempt_read:get_filemap_region * Update call to read_rom_file. * get_filemap_region: * Uses the old code at netfs_get_filemap to get a proxy to the device memory region. * get_filemap_rom: * Returns a proxy to the locally mapped device rom. * netfs_get_filemap: * Checks the requested file to map and calls get_filemap_rom, get_filemap_region or returns en error. Message-Id: <20220815161520.6059-2-jlledom@mailfence.com>
2022-08-13Drop ip_mreqn structureSamuel Thibault
This is to be defined in the glibc header.