Thread (12 messages) flat view 12 messages, 3 authors, 2018-07-07

Re: [PATCH bpf-next v2 2/3] bpf: btf: add btf print functionality

From: Martin KaFai Lau <hidden>
Date: 2018-07-03 23:34:25
Also in: lkml

On Tue, Jul 03, 2018 at 03:38:43PM -0700, Jakub Kicinski wrote:
On Tue, 3 Jul 2018 15:23:31 -0700, Jakub Kicinski wrote:
quoted
quoted
quoted
quoted
+			else
+				jsonw_printf(jw, "%hhd", *((char *)data));    
... I think you need to always print a string, and express it as
\u00%02hhx for non-printable.    
Okay that makes sense  
Yeah, IDK, char can be used as a byte as well as a string.  In eBPF
it may actually be more likely to just be used as a raw byte buffer...
Actually, what is the definition/purpose of BTF_INT_CHAR?  There seems
to be no BTF_INT_SHORT and BTF_INT_SIGNED can simply be of size 8...
Is normal int only used for bitfields of size 8 and BTF_INT_CHAR for
char variables?

The kernel seems to be rejecting combinations of those flags, is
unsigned char going to not be marked as char then?
BTF_INT_ENOCODING (CHAR/SIGNED/BOOL) is for formatting (e.g. pretty
print).  It is mainly how CTF is using it also.  Hence, BTF_INT_ENCODINGs
is not a 1:1 mapping to C integer types.
The size of an interger is described by BTF_INT_BITS instead.  
quoted
Either way I think it may be nice to keep it consistent, at least for
the JSON output could we do either always ints or always characters?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help