lkml.org 
[lkml]   [2013]   [Aug]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Re: [PATCH 13/13] tracing/probes: Fix basic print type functions
(2013/08/05 15:31), Joe Perches wrote:
> On Mon, 2013-08-05 at 15:22 +0900, Masami Hiramatsu wrote:
>> (2013/07/31 18:03), Namhyung Kim wrote:
>>> From: Namhyung Kim <namhyung.kim@lge.com>
>>>
>>> The print format of s32 type was "ld" and it's casted to "long". So
>>> it turned out to print 4294967295 for "-1" on 64-bit systems. Not
>>> sure whether it worked well on 32-bit systems.
> []
>>> diff --git a/kernel/trace/trace_probe.c b/kernel/trace/trace_probe.c
> []
>>> @@ -45,14 +45,19 @@ __kprobes int PRINT_TYPE_FUNC_NAME(type)(struct trace_seq *s, \
> []
>>> +DEFINE_BASIC_PRINT_TYPE_FUNC(s8, "%d", signed char)
>
> If there's a need to identify signed char, why
> not signed short, signed int and signd long too?

Actually, since the types smaller than int are automatically up-casted
to (signed/unsigned) int, those do not require the cast.
However, u64/s64 requires those cast, because there are two different
definitions (see include/asm/int-l[l]64.h).

BTW, I think we should have a common definition of the printk format
for each integer types too.

Thank you,

--
Masami HIRAMATSU
IT Management Research Dept. Linux Technology Center
Hitachi, Ltd., Yokohama Research Laboratory
E-mail: masami.hiramatsu.pt@hitachi.com




\
 
 \ /
  Last update: 2013-08-05 10:01    [W:0.081 / U:0.312 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site