1.1 --- a/libfsserver/include/fsserver/notification.h Sat Feb 25 18:10:13 2023 +0100
1.2 +++ b/libfsserver/include/fsserver/notification.h Sat Feb 25 22:11:08 2023 +0100
1.3 @@ -37,7 +37,7 @@
1.4 /* Collection data types. */
1.5
1.6 typedef std::set<l4_cap_idx_t> NotifierSet;
1.7 -typedef std::map<void *, l4_cap_idx_t> SubscriberNotifierMap;
1.8 +typedef std::map<l4_cap_idx_t, unsigned int> NotifierEndpointMap;
1.9
1.10 /* Notification endpoint details. */
1.11
1.12 @@ -75,9 +75,9 @@
1.13
1.14 NotificationEndpointList _endpoints;
1.15
1.16 - /* Notifier subscriber details. */
1.17 + /* Notifier endpoint details. */
1.18
1.19 - SubscriberNotifierMap _subscribers;
1.20 + NotifierEndpointMap _subscribers;
1.21
1.22 /* Deferred notifications for new endpoints. */
1.23
1.24 @@ -86,13 +86,19 @@
1.25
1.26 virtual void release_notifiers();
1.27
1.28 + virtual long _get_endpoint(l4_cap_idx_t notifier, bool remove,
1.29 + unsigned int *endpoint);
1.30 +
1.31 virtual void _notify(unsigned int endpoint, notify_flags_t flags,
1.32 notify_values_t values);
1.33
1.34 + virtual void _notify_others(unsigned int endpoint, notify_flags_t flags,
1.35 + notify_values_t values);
1.36 +
1.37 virtual long _subscribe(unsigned int endpoint, l4_cap_idx_t notifier,
1.38 - notify_flags_t flags, void *subscriber);
1.39 + notify_flags_t flags);
1.40
1.41 - virtual void _unsubscribe(unsigned int endpoint, void *subscriber);
1.42 + virtual void _unsubscribe(l4_cap_idx_t notifier);
1.43
1.44 public:
1.45 explicit NotificationSupport(unsigned int endpoints=0);
1.46 @@ -107,13 +113,15 @@
1.47 virtual void notify_others(unsigned int endpoint, notify_flags_t flags,
1.48 notify_values_t values);
1.49
1.50 - virtual long subscribe(l4_cap_idx_t notifier, notify_flags_t flags,
1.51 - void *subscriber, unsigned int *endpoint_number);
1.52 + virtual void notify_others(l4_cap_idx_t notifier, notify_flags_t flags,
1.53 + notify_values_t values);
1.54 +
1.55 + virtual long subscribe(l4_cap_idx_t notifier, notify_flags_t flags);
1.56
1.57 virtual long subscribe(unsigned int endpoint, l4_cap_idx_t notifier,
1.58 - notify_flags_t flags, void *subscriber);
1.59 + notify_flags_t flags);
1.60
1.61 - virtual void unsubscribe(unsigned int endpoint, void *subscriber);
1.62 + virtual void unsubscribe(l4_cap_idx_t notifier);
1.63 };
1.64
1.65 // vim: tabstop=4 expandtab shiftwidth=4