summaryrefslogtreecommitdiff
path: root/libmachdev
AgeCommit message (Collapse)Author
2020-11-15libmachdev: Fix spurious send referenceSamuel Thibault
* libmachdev/trivfs_server.c (trivfs_S_fsys_getpriv): Move the just-copied send rights instead of copying them again.
2020-11-15libmachdev: Make comments more preciseSamuel Thibault
2020-11-15libmachdev: Fix warningSamuel Thibault
* libmachdev/trivfs_server.c: Include <mach/i386/mach_i386.h>.
2020-11-15libmachdev: Remove duplicate declarationSamuel Thibault
* libmachdev/ds_routines.c (machdev_is_master_device): Remove duplicate declaration.
2020-11-15libmachdev: Fix missing backtranslation to port nameSamuel Thibault
trivfs happens to set the payload for our control port, and we are not using payload translation for mach_i386, so we need to tell mig how to get back to the port name. * libmachdev/Makefile (mach_i386-MIGSFLAGS): Set -DMACH_PAYLOAD_TO_PORT=ports_payload_get_name.
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-11-14libmachdev: Support installing translator in the FSDamien Zammit
*/libmachdev/trivfs_server.c (machdev_ctl): Rename to control_port. (trivfs_S_fsys_init): Fix accordingly. (control): New variable. (bootstrapped, underlying, devnode): New variables. (install_as_translator): New function. (trivfs_S_fsys_init): When bootstrapping, call install_as_translator. (machdev_trivfs_init): Create one port of the control class. (trivfs_S_fsys_getpriv): Use ports_get_send_right on the control port instead of creating another one. (resume_bootstrap_server): Use ports_get_send_right on the control port instead of creating another one. (machdev_trivfs_init): When bootstrapping, Use our control port as fsys.
2020-09-06libmachdev: Remove declaration for static functionDamien Zammit
This one-liner fixes libmachdev build failure. Message-Id: <20200906020837.329023-1-damien@zamaudio.com>
2020-08-02libmachdev: Introduce startup notification for clean rumpdisk shutdownDamien Zammit
Message-Id: <20200801050538.273196-1-damien@zamaudio.com>
2020-07-25libmachdev: simplify source codeSamuel Thibault
* libmachdev/trivfs_server.c (machdev_is_master_device): Simplify source code.
2020-07-25libmachdev: Implement S_i386_io_perm_createDamien Zammit
Now that machdev redirects the device master port, it has to implement the i386 permission RPCs on it. Message-Id: <20200725011847.186969-2-damien@zamaudio.com> Message-Id: <20200725011847.186969-3-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-07-24libmachdev: Remove deviceUser, this lib is a deviceServerDamien Zammit
libmachuser provides what we need Message-Id: <20200724132039.110421-1-damien@zamaudio.com>
2020-07-18libmachdev: Add new RPC server stubs for ds_device_intr_*Damien Zammit
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.