OXIESEC PANEL
- Current Dir:
/
/
usr
/
include
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
π
..
-
10/21/2019 03:48:12 PM
rwxr-xr-x
π
EGL
-
10/28/2024 06:50:22 AM
rwxr-xr-x
π
GL
-
10/28/2024 06:50:20 AM
rwxr-xr-x
π
KHR
-
10/28/2024 06:50:20 AM
rwxr-xr-x
π
OpenEXR
-
10/28/2024 06:50:35 AM
rwxr-xr-x
π
X11
-
10/28/2024 06:50:32 AM
rwxr-xr-x
π
_G_config.h
932 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
aio.h
7.28 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
aliases.h
1.98 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
alloca.h
1.17 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
ar.h
1.69 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
argp.h
24.82 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
argz.h
5.91 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
arpa
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
asm-generic
-
05/09/2024 07:14:21 AM
rwxr-xr-x
π
assert.h
4.53 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
at-spi-2.0
-
10/28/2024 06:50:16 AM
rwxr-xr-x
π
at-spi2-atk
-
10/28/2024 06:50:16 AM
rwxr-xr-x
π
atk-1.0
-
10/28/2024 06:50:16 AM
rwxr-xr-x
π
autotest.h
6.05 KB
03/26/2018 02:37:19 PM
rw-r--r--
π
btrfs
-
10/21/2019 03:49:20 PM
rwxr-xr-x
π
byteswap.h
1.37 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
c++
-
01/31/2023 12:38:15 PM
rwxr-xr-x
π
cairo
-
10/28/2024 06:50:19 AM
rwxr-xr-x
π
complex.h
7 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
cpio.h
2.21 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
crypt.h
2.21 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
ctype.h
10.71 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
dbus-1.0
-
10/28/2024 06:50:15 AM
rwxr-xr-x
π
dc1394
-
10/28/2024 06:50:34 AM
rwxr-xr-x
π
dirent.h
12.19 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
dlfcn.h
6.85 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
drm
-
05/09/2024 07:14:21 AM
rwxr-xr-x
π
elf.h
166.04 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
endian.h
3.11 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
entities.h
4.81 KB
08/30/2021 07:10:11 PM
rw-r--r--
π
envz.h
2.8 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
epoxy
-
10/28/2024 06:50:22 AM
rwxr-xr-x
π
err.h
2.16 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
errno.h
1.79 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
error.h
1.99 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
execinfo.h
1.49 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
expat.h
43.17 KB
11/18/2022 10:57:30 AM
rw-r--r--
π
expat_external.h
5.4 KB
11/18/2022 10:57:30 AM
rw-r--r--
π
fcntl.h
9.24 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
features.h
15.18 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
fenv.h
5.72 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
fmtmsg.h
3.16 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
fnmatch.h
2.24 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
fontconfig
-
01/31/2023 12:38:18 PM
rwxr-xr-x
π
freetype2
-
01/31/2023 12:38:18 PM
rwxr-xr-x
π
fstab.h
3.04 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
fts.h
8.18 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
ftw.h
5.13 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
gawkapi.h
30.31 KB
02/11/2018 05:02:41 AM
rw-r--r--
π
gconv.h
4.31 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
gd.h
56.42 KB
08/30/2021 07:10:11 PM
rw-r--r--
π
gd_color_map.h
478 bytes
08/30/2021 07:10:11 PM
rw-r--r--
π
gd_errors.h
1.47 KB
08/30/2021 07:10:11 PM
rw-r--r--
π
gd_io.h
3.05 KB
08/30/2021 07:10:11 PM
rw-r--r--
π
gdcache.h
2.83 KB
08/30/2021 07:10:11 PM
rw-r--r--
π
gdcm-2.8
-
10/28/2024 06:50:28 AM
rwxr-xr-x
π
gdfontg.h
553 bytes
08/30/2021 07:10:11 PM
rw-r--r--
π
gdfontl.h
551 bytes
08/30/2021 07:10:11 PM
rw-r--r--
π
gdfontmb.h
519 bytes
08/30/2021 07:10:11 PM
rw-r--r--
π
gdfonts.h
515 bytes
08/30/2021 07:10:11 PM
rw-r--r--
π
gdfontt.h
546 bytes
08/30/2021 07:10:11 PM
rw-r--r--
π
gdfx.h
497 bytes
08/30/2021 07:10:11 PM
rw-r--r--
π
gdk-pixbuf-2.0
-
10/28/2024 06:50:28 AM
rwxr-xr-x
π
gdpp.h
50.94 KB
08/30/2021 07:10:11 PM
rw-r--r--
π
getopt.h
1.43 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
gio-unix-2.0
-
10/28/2024 06:50:15 AM
rwxr-xr-x
π
glib-2.0
-
10/28/2024 06:50:15 AM
rwxr-xr-x
π
glob.h
6.46 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
glvnd
-
10/28/2024 06:50:20 AM
rwxr-xr-x
π
gnu-versions.h
2.29 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
gnumake.h
2.84 KB
04/17/2018 12:12:28 PM
rw-r--r--
π
gphoto2
-
10/28/2024 06:50:29 AM
rwxr-xr-x
π
graphite2
-
10/28/2024 06:50:29 AM
rwxr-xr-x
π
grp.h
6.53 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
gshadow.h
4.42 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
gtk-3.0
-
10/28/2024 06:50:32 AM
rwxr-xr-x
π
harfbuzz
-
10/28/2024 06:50:31 AM
rwxr-xr-x
π
iconv.h
1.81 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
icu-le-hb
-
10/28/2024 06:50:30 AM
rwxr-xr-x
π
ifaddrs.h
2.77 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
inttypes.h
11.61 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
jbig.h
9.55 KB
11/22/2022 04:58:49 PM
rw-r--r--
π
jbig85.h
6.78 KB
11/22/2022 04:58:49 PM
rw-r--r--
π
jbig_ar.h
2.21 KB
11/22/2022 04:58:49 PM
rw-r--r--
π
jerror.h
14.73 KB
09/21/2022 06:07:11 PM
rw-r--r--
π
jmorecfg.h
14.7 KB
09/21/2022 06:07:11 PM
rw-r--r--
π
jpegint.h
15.22 KB
07/07/2017 08:31:10 PM
rw-r--r--
π
jpeglib.h
48.71 KB
09/21/2022 06:07:11 PM
rw-r--r--
π
langinfo.h
17.43 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
lastlog.h
126 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
layout
-
10/28/2024 06:50:31 AM
rwxr-xr-x
π
libdrm
-
10/28/2024 06:50:20 AM
rwxr-xr-x
π
libexif
-
10/28/2024 06:50:22 AM
rwxr-xr-x
π
libgen.h
1.35 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
libintl.h
4.47 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
libio.h
918 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
libltdl
-
01/31/2023 12:34:20 PM
rwxr-xr-x
π
libpng
-
01/31/2023 12:38:17 PM
rwxr-xr-x
π
libpng16
-
01/31/2023 12:38:17 PM
rwxr-xr-x
π
libraw1394
-
10/28/2024 06:50:34 AM
rwxr-xr-x
π
libsync.h
3.38 KB
04/03/2020 12:28:15 PM
rw-r--r--
π
libv4l-plugin.h
1.72 KB
02/10/2018 12:46:51 PM
rw-r--r--
π
libv4l1-videodev.h
6.99 KB
02/10/2018 12:46:51 PM
rw-r--r--
π
libv4l1.h
2.85 KB
02/10/2018 12:46:51 PM
rw-r--r--
π
libv4l2.h
4.62 KB
02/10/2018 12:46:51 PM
rw-r--r--
π
libv4l2rds.h
14.31 KB
02/10/2018 12:46:51 PM
rw-r--r--
π
libv4lconvert.h
6.16 KB
02/10/2018 12:46:51 PM
rw-r--r--
π
limits.h
5.29 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
link.h
7.04 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
linux
-
05/09/2024 07:14:21 AM
rwxr-xr-x
π
locale.h
7.49 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
ltdl.h
5.58 KB
08/20/2016 12:34:31 PM
rw-r--r--
π
lzma
-
01/31/2023 12:38:19 PM
rwxr-xr-x
π
lzma.h
9.51 KB
04/08/2022 12:56:46 PM
rw-r--r--
π
malloc.h
5.96 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
math.h
44.33 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
mcheck.h
2.38 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
memory.h
955 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
misc
-
05/09/2024 07:14:21 AM
rwxr-xr-x
π
mntent.h
3.28 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
monetary.h
1.76 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
mqueue.h
3.67 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
mtd
-
05/09/2024 07:14:21 AM
rwxr-xr-x
π
net
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
netash
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
netatalk
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
netax25
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
netdb.h
27.39 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
neteconet
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
netinet
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
netipx
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
netiucv
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
netpacket
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
netrom
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
netrose
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
nfs
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
nl_types.h
1.71 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
nss.h
1.83 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
obstack.h
20.81 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
odbcinst.h
17.85 KB
03/26/2018 02:37:19 PM
rw-r--r--
π
odbcinstext.h
10.69 KB
03/26/2018 02:37:19 PM
rw-r--r--
π
opencv
-
10/28/2024 06:50:42 AM
rwxr-xr-x
π
opencv2
-
10/28/2024 06:50:42 AM
rwxr-xr-x
π
pango-1.0
-
10/28/2024 06:50:31 AM
rwxr-xr-x
π
paths.h
2.91 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
pcre.h
30.96 KB
05/17/2022 07:42:45 AM
rw-r--r--
π
pcre_scanner.h
6.45 KB
05/17/2022 07:42:45 AM
rw-r--r--
π
pcre_stringpiece.h
6.16 KB
05/17/2022 07:42:45 AM
rw-r--r--
π
pcrecpp.h
26.02 KB
05/17/2022 07:42:45 AM
rw-r--r--
π
pcrecpparg.h
6.62 KB
05/17/2022 07:42:45 AM
rw-r--r--
π
pcreposix.h
5.5 KB
05/17/2022 07:42:45 AM
rw-r--r--
π
pixman-1
-
10/28/2024 06:50:19 AM
rwxr-xr-x
π
png.h
140.77 KB
04/30/2019 02:56:15 PM
rw-r--r--
π
pngconf.h
22.31 KB
04/30/2019 02:56:15 PM
rw-r--r--
π
pnglibconf.h
7.39 KB
04/30/2019 02:56:15 PM
rw-r--r--
π
poll.h
22 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
printf.h
6.64 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
proc_service.h
3.39 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
protocols
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
pthread.h
40.3 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
pty.h
1.53 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
pwd.h
5.89 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
python3.6
-
10/28/2024 08:45:52 AM
rwxr-xr-x
π
python3.6m
-
10/28/2024 08:45:52 AM
rwxr-xr-x
π
rdma
-
05/09/2024 07:14:21 AM
rwxr-xr-x
π
re_comp.h
962 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
regex.h
21.53 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
regexp.h
1.41 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
resolv.h
11.73 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
rpc
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
rpcsvc
-
01/31/2023 12:30:37 PM
rwxr-xr-x
π
sched.h
4.62 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
scsi
-
05/09/2024 07:14:21 AM
rwxr-xr-x
π
search.h
5.1 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
semaphore.h
2.34 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
setjmp.h
3.58 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
sgtty.h
1.31 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
shadow.h
5.08 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
signal.h
11.96 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
sound
-
05/09/2024 07:14:21 AM
rwxr-xr-x
π
spawn.h
6.53 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
sql.h
31.62 KB
03/26/2018 02:37:19 PM
rw-r--r--
π
sqlext.h
81.3 KB
03/26/2018 02:37:19 PM
rw-r--r--
π
sqlspi.h
6.82 KB
03/26/2018 02:37:19 PM
rw-r--r--
π
sqltypes.h
10.88 KB
03/26/2018 02:37:19 PM
rw-r--r--
π
sqlucode.h
21.16 KB
03/26/2018 02:37:19 PM
rw-r--r--
π
stab.h
264 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
stdc-predef.h
2.31 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
stdint.h
8.42 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
stdio.h
28.97 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
stdio_ext.h
2.73 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
stdlib.h
34.95 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
string.h
17.13 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
strings.h
4.64 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
stropts.h
2.98 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
sudo_plugin.h
7.89 KB
04/04/2023 12:44:58 PM
rw-r--r--
π
syscall.h
25 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
sysexits.h
5.11 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
syslog.h
24 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
tar.h
3.7 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
tbb
-
10/28/2024 06:50:34 AM
rwxr-xr-x
π
termio.h
214 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
termios.h
3.51 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
tgmath.h
30.75 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
thread_db.h
15.65 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
time.h
10.12 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
ttyent.h
2.44 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
uchar.h
2.26 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
ucontext.h
1.89 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
ulimit.h
1.55 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
unicode
-
10/28/2024 06:50:31 AM
rwxr-xr-x
π
unistd.h
41.78 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
uodbc_extras.h
2.25 KB
03/26/2018 02:37:19 PM
rw-r--r--
π
uodbc_stats.h
2.53 KB
03/26/2018 02:37:19 PM
rw-r--r--
π
ustat.h
23 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
utime.h
1.47 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
utmp.h
3.15 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
utmpx.h
4 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
values.h
1.91 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
video
-
05/09/2024 07:14:21 AM
rwxr-xr-x
π
vpx
-
01/31/2023 12:38:19 PM
rwxr-xr-x
π
wait.h
22 bytes
05/03/2022 10:19:39 AM
rw-r--r--
π
wayland-client-core.h
8.41 KB
09/14/2022 01:57:23 PM
rw-r--r--
π
wayland-client-protocol.h
174.44 KB
09/14/2022 01:57:23 PM
rw-r--r--
π
wayland-client.h
1.54 KB
09/14/2022 01:57:23 PM
rw-r--r--
π
wayland-cursor.h
2.21 KB
09/14/2022 01:57:23 PM
rw-r--r--
π
wayland-egl-core.h
1.75 KB
09/14/2022 01:57:23 PM
rw-r--r--
π
wayland-egl.h
1.28 KB
09/14/2022 01:57:23 PM
rw-r--r--
π
wayland-server-core.h
18.32 KB
09/14/2022 01:57:23 PM
rw-r--r--
π
wayland-server-protocol.h
136.57 KB
09/14/2022 01:57:23 PM
rw-r--r--
π
wayland-server.h
3.16 KB
09/14/2022 01:57:23 PM
rw-r--r--
π
wayland-util.h
23.16 KB
09/14/2022 01:57:23 PM
rw-r--r--
π
wayland-version.h
1.32 KB
09/14/2022 01:57:23 PM
rw-r--r--
π
wchar.h
30.38 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
wctype.h
5.42 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
wordexp.h
2.44 KB
05/03/2022 10:19:39 AM
rw-r--r--
π
x86_64-linux-gnu
-
10/28/2024 06:50:44 AM
rwxr-xr-x
π
xcb
-
10/28/2024 06:50:21 AM
rwxr-xr-x
π
xen
-
05/09/2024 07:14:21 AM
rwxr-xr-x
π
xf86drm.h
34.65 KB
05/11/2020 12:47:23 PM
rw-r--r--
π
xf86drmMode.h
17.59 KB
04/03/2020 12:28:15 PM
rw-r--r--
π
xfs
-
04/18/2018 06:44:31 AM
rwxr-xr-x
π
xkbcommon
-
10/28/2024 06:50:32 AM
rwxr-xr-x
π
zconf.h
15.88 KB
08/16/2022 10:08:38 PM
rw-r--r--
π
zlib.h
94 KB
08/16/2022 10:08:38 PM
rw-r--r--
Editing: wayland-client-core.h
Close
/* * Copyright Β© 2008 Kristian HΓΈgsberg * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial * portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #ifndef WAYLAND_CLIENT_CORE_H #define WAYLAND_CLIENT_CORE_H #include <stdint.h> #include "wayland-util.h" #include "wayland-version.h" #ifdef __cplusplus extern "C" { #endif /** \class wl_proxy * * \brief Represents a protocol object on the client side. * * A wl_proxy acts as a client side proxy to an object existing in the * compositor. The proxy is responsible for converting requests made by the * clients with \ref wl_proxy_marshal() into Wayland's wire format. Events * coming from the compositor are also handled by the proxy, which will in * turn call the handler set with \ref wl_proxy_add_listener(). * * \note With the exception of function \ref wl_proxy_set_queue(), functions * accessing a wl_proxy are not normally used by client code. Clients * should normally use the higher level interface generated by the scanner to * interact with compositor objects. * */ struct wl_proxy; /** \class wl_display * * \brief Represents a connection to the compositor and acts as a proxy to * the wl_display singleton object. * * A wl_display object represents a client connection to a Wayland * compositor. It is created with either \ref wl_display_connect() or * \ref wl_display_connect_to_fd(). A connection is terminated using * \ref wl_display_disconnect(). * * A wl_display is also used as the \ref wl_proxy for the wl_display * singleton object on the compositor side. * * A wl_display object handles all the data sent from and to the * compositor. When a \ref wl_proxy marshals a request, it will write its wire * representation to the display's write buffer. The data is sent to the * compositor when the client calls \ref wl_display_flush(). * * Incoming data is handled in two steps: queueing and dispatching. In the * queue step, the data coming from the display fd is interpreted and * added to a queue. On the dispatch step, the handler for the incoming * event set by the client on the corresponding \ref wl_proxy is called. * * A wl_display has at least one event queue, called the <em>default * queue</em>. Clients can create additional event queues with \ref * wl_display_create_queue() and assign \ref wl_proxy's to it. Events * occurring in a particular proxy are always queued in its assigned queue. * A client can ensure that a certain assumption, such as holding a lock * or running from a given thread, is true when a proxy event handler is * called by assigning that proxy to an event queue and making sure that * this queue is only dispatched when the assumption holds. * * The default queue is dispatched by calling \ref wl_display_dispatch(). * This will dispatch any events queued on the default queue and attempt * to read from the display fd if it's empty. Events read are then queued * on the appropriate queues according to the proxy assignment. * * A user created queue is dispatched with \ref wl_display_dispatch_queue(). * This function behaves exactly the same as wl_display_dispatch() * but it dispatches given queue instead of the default queue. * * A real world example of event queue usage is Mesa's implementation of * eglSwapBuffers() for the Wayland platform. This function might need * to block until a frame callback is received, but dispatching the default * queue could cause an event handler on the client to start drawing * again. This problem is solved using another event queue, so that only * the events handled by the EGL code are dispatched during the block. * * This creates a problem where a thread dispatches a non-default * queue, reading all the data from the display fd. If the application * would call \em poll(2) after that it would block, even though there * might be events queued on the default queue. Those events should be * dispatched with \ref wl_display_dispatch_pending() or \ref * wl_display_dispatch_queue_pending() before flushing and blocking. */ struct wl_display; /** \class wl_event_queue * * \brief A queue for \ref wl_proxy object events. * * Event queues allows the events on a display to be handled in a thread-safe * manner. See \ref wl_display for details. * */ struct wl_event_queue; void wl_event_queue_destroy(struct wl_event_queue *queue); void wl_proxy_marshal(struct wl_proxy *p, uint32_t opcode, ...); void wl_proxy_marshal_array(struct wl_proxy *p, uint32_t opcode, union wl_argument *args); struct wl_proxy * wl_proxy_create(struct wl_proxy *factory, const struct wl_interface *interface); void * wl_proxy_create_wrapper(void *proxy); void wl_proxy_wrapper_destroy(void *proxy_wrapper); struct wl_proxy * wl_proxy_marshal_constructor(struct wl_proxy *proxy, uint32_t opcode, const struct wl_interface *interface, ...); struct wl_proxy * wl_proxy_marshal_constructor_versioned(struct wl_proxy *proxy, uint32_t opcode, const struct wl_interface *interface, uint32_t version, ...); struct wl_proxy * wl_proxy_marshal_array_constructor(struct wl_proxy *proxy, uint32_t opcode, union wl_argument *args, const struct wl_interface *interface); struct wl_proxy * wl_proxy_marshal_array_constructor_versioned(struct wl_proxy *proxy, uint32_t opcode, union wl_argument *args, const struct wl_interface *interface, uint32_t version); void wl_proxy_destroy(struct wl_proxy *proxy); int wl_proxy_add_listener(struct wl_proxy *proxy, void (**implementation)(void), void *data); const void * wl_proxy_get_listener(struct wl_proxy *proxy); int wl_proxy_add_dispatcher(struct wl_proxy *proxy, wl_dispatcher_func_t dispatcher_func, const void * dispatcher_data, void *data); void wl_proxy_set_user_data(struct wl_proxy *proxy, void *user_data); void * wl_proxy_get_user_data(struct wl_proxy *proxy); uint32_t wl_proxy_get_version(struct wl_proxy *proxy); uint32_t wl_proxy_get_id(struct wl_proxy *proxy); const char * wl_proxy_get_class(struct wl_proxy *proxy); void wl_proxy_set_queue(struct wl_proxy *proxy, struct wl_event_queue *queue); struct wl_display * wl_display_connect(const char *name); struct wl_display * wl_display_connect_to_fd(int fd); void wl_display_disconnect(struct wl_display *display); int wl_display_get_fd(struct wl_display *display); int wl_display_dispatch(struct wl_display *display); int wl_display_dispatch_queue(struct wl_display *display, struct wl_event_queue *queue); int wl_display_dispatch_queue_pending(struct wl_display *display, struct wl_event_queue *queue); int wl_display_dispatch_pending(struct wl_display *display); int wl_display_get_error(struct wl_display *display); uint32_t wl_display_get_protocol_error(struct wl_display *display, const struct wl_interface **interface, uint32_t *id); int wl_display_flush(struct wl_display *display); int wl_display_roundtrip_queue(struct wl_display *display, struct wl_event_queue *queue); int wl_display_roundtrip(struct wl_display *display); struct wl_event_queue * wl_display_create_queue(struct wl_display *display); int wl_display_prepare_read_queue(struct wl_display *display, struct wl_event_queue *queue); int wl_display_prepare_read(struct wl_display *display); void wl_display_cancel_read(struct wl_display *display); int wl_display_read_events(struct wl_display *display); void wl_log_set_handler_client(wl_log_func_t handler); #ifdef __cplusplus } #endif #endif