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>