summaryrefslogtreecommitdiff
path: root/libmachdev/machdev.h
AgeCommit message (Collapse)Author
2024-11-10acpi, libmachdev: Add _forever variant of trivfs server loopDamien Zammit via Bug reports for the GNU Hurd
The acpi server needs to survive after the shutdown notification, so it can serve S_acpi_sleep() RPC to actually shut down the machine. Therefore we need to keep the server alive and not respond to the trivfs goaway request. Message-ID: <20241110084135.3859485-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-03-01libmachdev: Export demuxer as machdev_demuxer and bucket pointerDamien Zammit
This will allow callers to manage their own server routine. Message-Id: <20220227091013.33112-3-damien@zamaudio.com>
2021-08-11libmachdev: Fix startup_dosyncSamuel Thibault
We do not actually want to shut everything down. For instance, we still have to be able to start the acpi translator to perform the actual shutdown. What we however have to do is syncing the disks.
2021-04-04machdev: Pass argv through to _hurd_initv0.9.git20210404Damien Zammit
Message-Id: <20210404033750.143411-1-damien@zamaudio.com>
2021-03-07libmachdev: pass shutdown handle to shutdown methodDamien Zammit
* libmachdev/machdev-device_emul.h (struct machdev_device_emulation_ops): Add shutdown method. * libmachdev/ds_routines.c (machdev_device_shutdown): Take dosync_handle handle and pass it to shutdown method. * libmachdev/machdev.h (machdev_device_shutdown): Update prototype. * libmachdev/trivfs_server.c (S_startup_dosync): Pass shutdown handle to machdev_device_shutdown call. * rumpdisk/block-rump.c (rumpdisk_device_shutdown): Take dosync_handle parameter.
2020-11-14libmachdev: Avoid conflating translator name and pathSamuel Thibault
bootstrap translators may not wish to appear in the FS, and the name of the translator does not have to match the path where it is getting installed. * libmachdev/machdev.h (machdev_trivfs_init): Add path parameter. * libmachdev/trivfs_server.c (machdev_trivfs_init): Add path parameter, set devnode only if it is not NULL. (trivfs_S_fsys_init): Only call install_as_translator when devnode is not NULL. * /rumpdisk/main.c (main): Add path parameter.
2020-08-02libmachdev: Introduce startup notification for clean rumpdisk shutdownDamien Zammit
Message-Id: <20200801050538.273196-1-damien@zamaudio.com>
2020-07-25libmachdev: Add resume for bootstrap serverDamien Zammit
machdev users can now pass along a port to the next translator in the bootstrap chain (bootstrap_resume_task), that they'll get from their command line set by the bootloader. machdev will then call task_resume on it as appropriate. It will also have the opportunity to get fsys_getpriv calls, and thus redirect the device master port, thus having the opportunity to expose its devices on the device master port, as if they were handled by the kernel. Message-Id: <20200725011847.186969-1-damien@zamaudio.com>
2020-03-30machdev: Expose machdev_emul_device structureSamuel Thibault
* libmachdev/machdev-dev_hdr.h (DEVICE_NULL): Remove macro. (emul_device): Rename structure to machdev_emul_device. (emul_device_t): Rename type to machdev_emul_device_t. (mach_device, mach_device_t, MACH_DEVICE_NULL): Move to... * libmachdev/mach_device.h: ... new file. * libmachdev/ds_routines.c: Include "mach_device.h". * libmachdev/machdev-device_emul.h: Include <mach/notify.h>, <device/device_types.h>, <device/net_status.h>, <errno.h> * libmachdev/machdev.h: Include "machdev_hdr.h". * libmachdev/mig-decls.h: Include "mach_device.h". * libmachdev/Makefile (LCLHDRS): Add mach_device.h. (installhdrs): Add machdev-dev_hdr.h.
2020-03-29libmachdev: Add common machdevZheng Da
* libmachdev: New directory.