comparison dep/animia/src/fd.cc @ 202:71832ffe425a

animia: re-add kvm fd source this is all being merged from my wildly out-of-date laptop. SORRY! in other news, I edited the CI file to install the wayland client as well, so the linux CI build might finally get wayland stuff.
author Paper <paper@paper.us.eu.org>
date Tue, 02 Jan 2024 06:05:06 -0500
parents 8f6f8dd2eb23 bc1ae1810855
children
comparison
equal deleted inserted replaced
201:8f6f8dd2eb23 202:71832ffe425a
1 #include "animia/fd.h" 1 #include "animia/fd.h"
2 2
3 #ifdef WIN32 3 #ifdef WIN32
4 # include "animia/fd/win32.h" 4 # include "animia/fd/win32.h"
5 #elif defined(LINUX) || defined(FREEBSD) 5 #endif
6
7 #ifdef LINUX
6 # include "animia/fd/proc.h" 8 # include "animia/fd/proc.h"
7 #elif defined(MACOSX) 9 #endif
10
11 #ifdef MACOSX
8 # include "animia/fd/xnu.h" 12 # include "animia/fd/xnu.h"
9 #elif defined(LIBUTIL) 13 #endif
10 # include "animia/fd/libutil.h" 14
11 #elif defined(LIBKVM) 15 #ifdef LIBUTIL
12 # include "animia/fd/kvm.h" 16 # include "animia/fd/libutil.h"
17 #endif
18
19 #ifdef LIBKVM
20 # include "animia/fd/kvm.h"
13 #endif 21 #endif
14 22
15 namespace animia::internal { 23 namespace animia::internal {
16 24
25 bool EnumerateOpenFiles(const std::set<pid_t>& pids, open_file_proc_t open_file_proc) {
26 bool success = false;
27
17 #ifdef WIN32 28 #ifdef WIN32
18 win32::Win32FdTools os_fd; 29 success ^= win32::EnumerateOpenFiles(pids, open_file_proc);
19 #elif defined(LINUX) || defined(FREEBSD)
20 proc::ProcFdTools os_fd;
21 #elif defined(MACOSX)
22 xnu::XnuFdTools os_fd;
23 #elif defined(LIBUTIL)
24 libutil::LibutilFdTools os_fd;
25 #elif defined(LIBKVM)
26 kvm::KvmFdTools os_fd;
27 #else
28 BaseFdTools os_fd;
29 #endif 30 #endif
30 31
31 BaseFdTools& fd = os_fd; 32 #ifdef LINUX
33 success ^= proc::EnumerateOpenFiles(pids, open_file_proc);
34 #endif
35
36 #ifdef MACOSX
37 success ^= xnu::EnumerateOpenFiles(pids, open_file_proc);
38 #endif
39
40 #ifdef LIBUTIL
41 success ^= libutil::EnumerateOpenFiles(pids, open_file_proc);
42 #endif
43
44 #ifdef LIBKVM
45 success ^= kvm::EnumerateOpenFiles(pids, open_file_proc);
46 #endif
47
48 return success;
49 }
50
51 bool EnumerateOpenProcesses(process_proc_t process_proc) {
52 bool success = false;
53
54 #ifdef WIN32
55 success ^= win32::EnumerateOpenProcesses(process_proc);
56 #endif
57
58 #ifdef LINUX
59 success ^= proc::EnumerateOpenProcesses(process_proc);
60 #endif
61
62 #ifdef MACOSX
63 success ^= xnu::EnumerateOpenProcesses(process_proc);
64 #endif
65
66 #ifdef LIBUTIL
67 success ^= libutil::EnumerateOpenProcesses(process_proc);
68 #endif
69
70 #ifdef LIBKVM
71 success ^= kvm::EnumerateOpenProcesses(process_proc);
72 #endif
73
74 return success;
75 }
32 76
33 } // namespace animia::internal 77 } // namespace animia::internal