[PATCH V2] sh: Add support for tracing sys_cacheflush system call
Carmelo AMOROSO
carmelo.amoroso at st.com
Wed Dec 1 13:33:06 UTC 2010
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
On 12/1/2010 2:27 PM, Carmelo AMOROSO wrote:
> Signed-off-by: Carmelo Amoroso <carmelo.amoroso at st.com>
> Reviewed-by: Angelo Castello <angelo.castello at st.com>
> ---
> linux/sh/syscallent.h | 2 +-
> linux/syscall.h | 2 +-
> system.c | 33 +++++++++++++++++++++++++++++++++
> 3 files changed, 35 insertions(+), 2 deletions(-)
>
> diff --git a/linux/sh/syscallent.h b/linux/sh/syscallent.h
> index 2291131..f3b59db 100644
> --- a/linux/sh/syscallent.h
> +++ b/linux/sh/syscallent.h
> @@ -153,7 +153,7 @@
> { 5, TP, sys_clone, "clone" }, /* 120 */
> { 2, 0, sys_setdomainname, "setdomainname" }, /* 121 */
> { 1, 0, sys_uname, "uname" }, /* 122 */
> - { 3, 0, printargs, "cacheflush" }, /* 123 */
> + { 3, 0, sys_cacheflush, "cacheflush" }, /* 123 */
> { 1, 0, sys_adjtimex, "adjtimex" }, /* 124 */
> { 3, 0, sys_mprotect, "mprotect" }, /* 125 */
> { 3, TS, sys_sigprocmask, "sigprocmask" }, /* 126 */
> diff --git a/linux/syscall.h b/linux/syscall.h
> index 679697f..e7348ff 100644
> --- a/linux/syscall.h
> +++ b/linux/syscall.h
> @@ -322,7 +322,7 @@ int sys_sysmips();
> int sys_setpgrp(), sys_gethostname(), sys_getdtablesize(), sys_utimes();
> int sys_capget(), sys_capset();
>
> -#ifdef M68K
> +#if defined M68K || defined SH
> int sys_cacheflush();
> #endif
>
> diff --git a/system.c b/system.c
> index e16a6be..1491005 100644
> --- a/system.c
> +++ b/system.c
> @@ -343,6 +343,39 @@ sys_cacheflush(struct tcb *tcp)
>
> #endif
>
> +#ifdef SH
> +static const struct xlat cacheflush_flags[] = {
> +#ifdef CACHEFLUSH_D_INVAL
> + { CACHEFLUSH_D_INVAL, "CACHEFLUSH_D_INVAL" },
> +#endif
> +#ifdef CACHEFLUSH_D_WB
> + { CACHEFLUSH_D_WB, "CACHEFLUSH_D_WB" },
> +#endif
> +#ifdef CACHEFLUSH_D_PURGE
> + { CACHEFLUSH_D_PURGE, "CACHEFLUSH_D_PURGE" },
> +#endif
> +#ifdef CACHEFLUSH_I
> + { CACHEFLUSH_I, "CACHEFLUSH_I" },
> +#endif
> + { 0, NULL },
> +};
> +
> +int
> +sys_cacheflush(tcp)
> +struct tcb *tcp;
> +{
> + if (entering(tcp)) {
> + /* addr */
> + tprintf("%#lx, ", tcp->u_arg[0]);
> + /* len */
> + tprintf("%lu, ", tcp->u_arg[1]);
> + /* flags */
> + printflags(cacheflush_flags, tcp->u_arg[2], "CACHEFLUSH_???");
> + }
> + return 0;
> +}
> +#endif /* SH */
> +
> #endif /* LINUX */
>
> #ifdef SUNOS4
Updated version taking into account Dimitry's suggestion.
cheers,
carmelo
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iEYEARECAAYFAkz2TpIACgkQoRq/3BrK1s9sbACgmYhMFS5mVF6CoAaZ/h1FrMPd
fYwAnRAxWHqNzJzQ1SOfY5vVD7Mxehlv
=purb
-----END PGP SIGNATURE-----
More information about the Strace-devel
mailing list