1.1 --- a/libexec/include/exec/external_pager.h Thu Mar 23 15:42:39 2023 +0100
1.2 +++ b/libexec/include/exec/external_pager.h Fri Mar 24 00:46:26 2023 +0100
1.3 @@ -21,12 +21,10 @@
1.4
1.5 #pragma once
1.6
1.7 -#include <vector>
1.8 -
1.9 #include <exec/elf.h>
1.10 #include <exec/pager.h>
1.11 +#include <exec/process_monitor.h>
1.12 #include <exec/segment.h>
1.13 -#include <fsserver/notification.h>
1.14 #include <resource/resource.h>
1.15
1.16 #include "parent_pager_object_interface.h"
1.17 @@ -36,17 +34,18 @@
1.18 /* A simple system pager also acting as a region mapper. */
1.19
1.20 class ExternalPager : public ExecPager, public ParentPagerObject,
1.21 - public NotificationSupport, public Resource
1.22 + public Resource
1.23 {
1.24 protected:
1.25
1.26 /* Resources associated with the created process. */
1.27
1.28 l4_cap_idx_t _task = L4_INVALID_CAP, _mapped_task = L4_INVALID_CAP,
1.29 + _thread = L4_INVALID_CAP, _mapped_thread = L4_INVALID_CAP,
1.30 _parent = L4_INVALID_CAP, _mapped_parent = L4_INVALID_CAP,
1.31 - _pager = L4_INVALID_CAP, _mapped_pager = L4_INVALID_CAP,
1.32 - _ipc_gate = L4_INVALID_CAP;
1.33 - std::vector<l4_cap_idx_t> _threads, _mapped_threads;
1.34 + _pager = L4_INVALID_CAP, _mapped_pager = L4_INVALID_CAP;
1.35 +
1.36 + ProcessMonitor *_monitor = NULL;
1.37
1.38 /* Resources supporting the internal pager. */
1.39
1.40 @@ -63,13 +62,16 @@
1.41 virtual void *interface()
1.42 { return static_cast<ParentPagerObject *>(this); }
1.43
1.44 - /* Task and thread management. */
1.45 + /* Capability management. */
1.46
1.47 - virtual void add_thread(l4_cap_idx_t cap, l4_cap_idx_t mapped_cap);
1.48 - virtual void set_gate(l4_cap_idx_t cap);
1.49 virtual void set_pager(l4_cap_idx_t cap, l4_cap_idx_t mapped_cap);
1.50 virtual void set_parent(l4_cap_idx_t cap, l4_cap_idx_t mapped_cap);
1.51 virtual void set_task(l4_cap_idx_t cap, l4_cap_idx_t mapped_cap);
1.52 + virtual void set_thread(l4_cap_idx_t cap, l4_cap_idx_t mapped_cap);
1.53 +
1.54 + /* Lifecycle management. */
1.55 +
1.56 + virtual void set_monitor(ProcessMonitor *monitor);
1.57
1.58 /* Internal pager resource management. */
1.59
1.60 @@ -96,12 +98,6 @@
1.61 /* Parent methods. */
1.62
1.63 virtual long signal(unsigned long sig, unsigned long val);
1.64 -
1.65 - /* Notification methods. */
1.66 -
1.67 - virtual long subscribe(l4_cap_idx_t notifier, notify_flags_t flags);
1.68 -
1.69 - virtual long unsubscribe(l4_cap_idx_t notifier);
1.70 };
1.71
1.72 /* vim: tabstop=2 expandtab shiftwidth=2