Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 17 Sep 2009 21:05:59 GMT
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 168638 for review
Message-ID:  <200909172105.n8HL5xW9052571@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=168638

Change 168638 by jkim@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)
 //----------------------------------------------------------------------
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200909172105.n8HL5xW9052571>