mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-27 01:28:46 +00:00
ari, btrace: avoid unsigned long long
Fix the ARI warning about the use of unsigned long long. We can't use ULONGEST as this is defined unsigned long on 64-bit systems. This will result in a compile error when storing a pointer to an unsigned long long structure field (declared in perf_event.h as __u64) in a ULONGEST * variable. Use size_t to hold the buffer size inside GDB and __u64 when interfacing the Linux kernel. gdb/ * nat/linux-btrace.c (perf_event_read): Change the type of DATA_HEAD. (perf_event_read_all): Change the type of SIZE and DATA_HEAD. (perf_event_read_bts): Change the type of SIZE and READ. (linux_enable_bts): Change the type of SIZE, PAGES, DATA_SIZE, and DATA_OFFSET. Move DATA_SIZE declaration. Restrict the buffer size to UINT_MAX. Check for overflows when using DATA_HEAD from the perf mmap page. (linux_enable_pt): Change the type of PAGES and SIZE. Restrict the buffer size to UINT_MAX. (linux_read_bts): Change the type of BUFFER_SIZE, SIZE, DATA_HEAD, and DATA_TAIL. * nat/linux-btrace.h (struct perf_event_buffer)<size, data_head> <last_head>: Change type. * common/btrace-common.h (struct btrace_dat_pt) <size>: Change type. * common/btrace-common.c (btrace_data_append): Change the type of SIZE. * btrace.c (parse_xml_raw): Change the type of SIZE. Change oddness check.
This commit is contained in:
@@ -96,7 +96,10 @@ struct btrace_cpu
|
||||
|
||||
struct btrace_config_bts
|
||||
{
|
||||
/* The size of the branch trace buffer in bytes. */
|
||||
/* The size of the branch trace buffer in bytes.
|
||||
|
||||
This is unsigned int and not size_t since it is registered as
|
||||
control variable for "set record btrace bts buffer-size". */
|
||||
unsigned int size;
|
||||
};
|
||||
|
||||
@@ -104,7 +107,10 @@ struct btrace_config_bts
|
||||
|
||||
struct btrace_config_pt
|
||||
{
|
||||
/* The size of the branch trace buffer in bytes. */
|
||||
/* The size of the branch trace buffer in bytes.
|
||||
|
||||
This is unsigned int and not size_t since it is registered as
|
||||
control variable for "set record btrace pt buffer-size". */
|
||||
unsigned int size;
|
||||
};
|
||||
|
||||
@@ -152,7 +158,7 @@ struct btrace_data_pt
|
||||
gdb_byte *data;
|
||||
|
||||
/* The size of DATA in bytes. */
|
||||
unsigned long size;
|
||||
size_t size;
|
||||
};
|
||||
|
||||
/* The branch trace data. */
|
||||
|
||||
Reference in New Issue
Block a user