aboutsummaryrefslogtreecommitdiff
path: root/eth-multiplexer/device_impl.c
Commit message (Collapse)AuthorAgeFilesLines
* eth-multiplexer: Port to x86_64Sergey Bugaev2023-05-101-8/+10
| | | | Message-Id: <20230508213136.608575-29-bugaevc@gmail.com>
* Implement device_open_new for all the translators implementing the device ↵Flavio Cruz2023-05-071-0/+10
| | | | | | interface. Message-Id: <ZFfcloxDKSiyHJTH@jupiter.tail36e24.ts.net>
* eth-multiplexer: Use notify server implementation from libportsSergey Bugaev2022-08-101-1/+0
| | | | We can simply override proc_dead_name () to handle dead-name notifications.
* eth-multiplexer: Use ports_request_dead_name_notification ()Sergey Bugaev2022-08-101-9/+4
|
* Do not use ports_get_right () for send-one rightsSergey Bugaev2022-08-101-1/+1
| | | | | | | | | | | | ports_get_right () expects the caller to make a send, not a send-once, right from the returned receive right, and increments the expected make-send count accordingly. The kernel, however, does not increment the make-send count when a send-once right is being made. The result can be described as a "no-senders leak": libports' idea of the current make-send count always stays one step ahead of it actual value (or several steps ahead, if the process is repeated), which makes libports ignore *all* the subsequent no-senders notifications for the port as outdated.
* Fix const warningsSamuel Thibault2022-01-171-1/+1
| | | | | Now that the RPCs have const, this forces us cleaning our const-meant functions.
* Make RPC input array parameters constSamuel Thibault2022-01-161-2/+2
| | | | | This follows mig's cf4bcc3f1435 ("Also add const qualifiers on server side")
* Add new RPC server stubs for device_intr_*Samuel Thibault2020-07-181-0/+13
| | | | | | | * boot/boot.c (ds_device_intr_register, ds_device_intr_ack): New stubs. * devnode/devnode.c (ds_device_intr_register, ds_device_intr_ack): New stubs. * eth-multiplexer/device_impl.c (ds_device_intr_register, ds_device_intr_ack): New stubs.
* eth-multiplexer: Simplify device creation.Justus Winter2017-09-251-8/+1
| | | | | | * eth-multiplexer/vdev.c (add_vdev): Remove class and bucket parameter. * eth-multiplexer/vdev.h (add_vdev): Likewise. * eth-multiplexer/device_impl.c (ds_device_open): Update callsite.
* eth-multiplexer: Fix type check.Justus Winter2017-08-241-1/+2
| | | | | * eth-multiplexer/device_impl.c (ds_device_open): Check the port class.
* eth-multiplexer: Respect interfaces up flags.Justus Winter2017-08-231-0/+3
| | | | | | | | | * eth-multiplexer/device_impl.c (ds_device_write): Deny writes when interface is down. * eth-multiplexer/vdev.c (add_vdev): Initialize flags to a sane value. (broadcast_pack): Skip interfaces that are down. (broadcast_msg): Likewise.
* eth-multiplexer: Allow setting of flags.Justus Winter2017-08-231-1/+1
| | | | | | | | * eth-multiplexer/dev_stat.c (wants_all_multi_p): New function. (vdev_setstat): Likewise. * eth-multiplexer/device_impl.c (ds_device_set_status): Use new function. * eth-multiplexer/vdev.h (vdev_setstat): New declaration.
* eth-multiplexer: Fix error handling.Justus Winter2017-08-221-4/+2
| | | | | * eth-multiplexer/device_impl.c (ds_device_write): Do not deallocate data, it is destroyed by the server loop ("consume-on-success").
* eth-multiplexer: Fix retrieving status of virtual interfaces.Justus Winter2016-11-051-8/+2
| | | | | | | | | | Previously, the ethernet multiplexer returned the status of the real network device if one was configured. This had the unfortunate consequence that all virtual devices shared the same ethernet address. * eth-multiplexer/device_impl.c (ds_device_get_status): Always return the information for the virtual device. * eth-multiplexer/vdev.h (dev_getstat): Add prototype.
* eth-multiplexer: Merge the eth-multiplexer.Zheng Da2016-11-041-0/+213
* Makefile (prog-subdirs): Add the new program. * NEWS: Update. * eth-multiplexer/ChangeLog: New file. * eth-multiplexer/Makefile: Likewise. * eth-multiplexer/README: Likewise. * eth-multiplexer/demuxer.c: Likewise. * eth-multiplexer/dev_stat.c: Likewise. * eth-multiplexer/device_impl.c: Likewise. * eth-multiplexer/ethernet.c: Likewise. * eth-multiplexer/ethernet.h: Likewise. * eth-multiplexer/mig-decls.h: Likewise. * eth-multiplexer/mig-mutate.h: Likewise. * eth-multiplexer/multiplexer.c: Likewise. * eth-multiplexer/netfs_impl.c: Likewise. * eth-multiplexer/netfs_impl.h: Likewise. * eth-multiplexer/notify_impl.c: Likewise. * eth-multiplexer/test.c: Likewise. * eth-multiplexer/util.h: Likewise. * eth-multiplexer/vdev.c: Likewise. * eth-multiplexer/vdev.h: Likewise. The eth-multiplexer has been written by Zheng Da. This merges his work into the main repository.