summaryrefslogtreecommitdiff
path: root/devel/valgrind-devel/files/jail_syscalls.patch
blob: b9450555bef7647889154a98072e0247f36c29c6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# HG changeset patch
# User Bitbucket <noreply@bitbucket.org>
# Date 0 0
# Node ID 90c6097540f35e312d34340b916296130003c851
# Parent  ce1acb28953fd6928ccb8f9511e374eab66e8625
# Parent  5662e704b72c7ebb116f8478a4ff3847acc72fc6
Merge preview of source (5662e704b72c7ebb116f8478a4ff3847acc72fc6) to destination (ce1acb28953fd6928ccb8f9511e374eab66e8625).

diff -r ce1acb28953fd6928ccb8f9511e374eab66e8625 -r 90c6097540f35e312d34340b916296130003c851 coregrind/m_syswrap/syswrap-freebsd.c
--- a/coregrind/m_syswrap/syswrap-freebsd.c
+++ b/coregrind/m_syswrap/syswrap-freebsd.c
@@ -3670,6 +3670,42 @@
         POST_MEM_WRITE( ARG5, ARG4 );
 }
 
+PRE(sys_jail_get)
+{
+
+	PRINT("sys_jail_get ( %#lx, %lu, %ld )", ARG1, ARG2, ARG3);
+	PRE_REG_READ3(int, "jail_get", struct vki_iovec *, iov, unsigned int,
+		niov, int, flags);
+	PRE_MEM_WRITE("jail_get", ARG1, ARG2 * sizeof(struct vki_iovec));
+}
+
+POST(sys_jail_get)
+{
+	vg_assert(SUCCESS);
+	if (RES != -1)
+		POST_MEM_WRITE(ARG1, ARG2);
+}
+
+PRE(sys_jail_set)
+{
+	PRINT("sys_jail_set ( %#lx, %lu, %ld )", ARG1, ARG2, ARG3);
+	PRE_REG_READ3(int, "jail_set", struct vki_iovec *, iov, unsigned int,
+		niov, int, flags);
+	PRE_MEM_WRITE("jail_set", ARG1, ARG2 * sizeof(struct vki_iovec));
+}
+
+PRE(sys_jail_attach)
+{
+	PRINT("sys_jail_attach ( %ld )", ARG1);
+	PRE_REG_READ1(int, "jail_attach", int, jid);
+}
+
+PRE(sys_jail_remove)
+{
+	PRINT("sys_jail_remove ( %ld )", ARG1);
+	PRE_REG_READ1(int, "jail_remove", int, jid);
+}
+
 #undef PRE
 #undef POST
 
@@ -4219,7 +4255,7 @@
    BSDXY(__NR__umtx_lock,		sys__umtx_lock),		// 434
    BSDXY(__NR__umtx_unlock,		sys__umtx_unlock),		// 435
 
-   // jail_attach							   436
+   BSDX_(__NR_jail_attach,		sys_jail_attach),	// 436
    // extattr_list_fd							   437
    // extattr_list_file							   438
    // extattr_list_link							   439
@@ -4303,6 +4339,10 @@
    BSDX_(__NR_symlinkat,		sys_symlinkat),			// 502
    BSDX_(__NR_unlinkat,			sys_unlinkat),			// 503
 
+   BSDXY(__NR_jail_get,			sys_jail_get),			// 506
+   BSDX_(__NR_jail_set,			sys_jail_set),			// 507
+   BSDX_(__NR_jail_remove,		sys_jail_remove),		// 508
+
    // posix_openpt							   504
 
    BSDXY(__NR___semctl,			sys___semctl),			// 510
diff -r ce1acb28953fd6928ccb8f9511e374eab66e8625 -r 90c6097540f35e312d34340b916296130003c851 include/vki/vki-scnums-freebsd.h
--- a/include/vki/vki-scnums-freebsd.h
+++ b/include/vki/vki-scnums-freebsd.h
@@ -405,6 +405,9 @@
 #define	__NR_symlinkat		502
 #define	__NR_unlinkat		503
 #define	__NR_posix_openpt	504
+#define	__NR_jail_get		506
+#define	__NR_jail_set		507
+#define	__NR_jail_remove	508
 #define	__NR___semctl		510
 #define	__NR_shmctl		512
 #define	__NR_pipe2		542