PERFORCE change 168638 for review
Jung-uk Kim
jkim at FreeBSD.org
Thu Sep 17 21:06:00 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=168638
Change 168638 by jkim at jkim_hammer on 2009/09/17 21:05:30
Implement kenv(2) support.
Affected files ...
.. //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#20 edit
.. //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#42 edit
.. //depot/projects/valgrind/include/vki/vki-freebsd.h#18 edit
Differences ...
==== //depot/projects/valgrind/coregrind/m_syswrap/priv_syswrap-freebsd.h#20 (text+ko) ====
@@ -257,6 +257,7 @@
DECL_TEMPLATE(freebsd, sys_symlinkat);
DECL_TEMPLATE(freebsd, sys_unlinkat);
DECL_TEMPLATE(freebsd, sys_posix_openpt);
+DECL_TEMPLATE(freebsd, sys_kenv);
DECL_TEMPLATE(freebsd, sys_uuidgen);
DECL_TEMPLATE(freebsd, sys_thr_new);
DECL_TEMPLATE(freebsd, sys_thr_kill);
==== //depot/projects/valgrind/coregrind/m_syswrap/syswrap-freebsd.c#42 (text+ko) ====
@@ -2548,6 +2548,39 @@
PRE_REG_READ0(long, "lkmnosys8");
}
+PRE(sys_kenv)
+{
+ PRINT("sys_kenv ( %ld, %#lx, %#lx, %ld )", ARG1,ARG2,ARG3,ARG4);
+ PRE_REG_READ4(long, "kenv",
+ int, action, const char *, name, char *, value, int, len);
+ switch (ARG1) {
+ case VKI_KENV_GET:
+ case VKI_KENV_SET:
+ case VKI_KENV_UNSET:
+ PRE_MEM_RASCIIZ("kenv(name)", ARG2);
+ /* FALLTHROUGH */
+ case VKI_KENV_DUMP:
+ break;
+ default:
+ I_die_here;
+ }
+}
+
+POST(sys_kenv)
+{
+ if (SUCCESS) {
+ switch (ARG1) {
+ case VKI_KENV_GET:
+ POST_MEM_WRITE(ARG3, ARG4);
+ break;
+ case VKI_KENV_DUMP:
+ if (ARG3 != (Addr)NULL)
+ POST_MEM_WRITE(ARG3, ARG4);
+ break;
+ }
+ }
+}
+
PRE(sys_uuidgen)
{
PRINT("sys_uuidgen ( %#lx, %ld )", ARG1,ARG2);
@@ -3667,7 +3700,7 @@
// __mac_set_fd 388
// __mac_set_file 389
- // kenv 390
+ BSDXY(__NR_kenv, sys_kenv), // 390
// lchflags 391
BSDXY(__NR_uuidgen, sys_uuidgen), // 392
==== //depot/projects/valgrind/include/vki/vki-freebsd.h#18 (text+ko) ====
@@ -1944,6 +1944,14 @@
#endif
//----------------------------------------------------------------------
+// From sys/kenv.h
+//----------------------------------------------------------------------
+#define VKI_KENV_GET 0
+#define VKI_KENV_SET 1
+#define VKI_KENV_UNSET 2
+#define VKI_KENV_DUMP 3
+
+//----------------------------------------------------------------------
// From sys/sysctl.h (and related)
//----------------------------------------------------------------------
More information about the p4-projects
mailing list