perf util: Move do_read from session to util
Not really something to be exported from session.c. Rename it to 'readn' as others did in the past. Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Stephane Eranian <eranian@google.com> Cc: Tom Zanussi <tzanussi@gmail.com> LKML-Reference: <new-submission> Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
daec78a09d
commit
1e7972cc5c
|
@ -604,7 +604,7 @@ int perf_header__write(struct perf_header *self, int fd, bool at_exit)
|
||||||
static int perf_header__getbuffer64(struct perf_header *self,
|
static int perf_header__getbuffer64(struct perf_header *self,
|
||||||
int fd, void *buf, size_t size)
|
int fd, void *buf, size_t size)
|
||||||
{
|
{
|
||||||
if (do_read(fd, buf, size) <= 0)
|
if (readn(fd, buf, size) <= 0)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
if (self->needs_swap)
|
if (self->needs_swap)
|
||||||
|
@ -660,7 +660,7 @@ int perf_file_header__read(struct perf_file_header *self,
|
||||||
{
|
{
|
||||||
lseek(fd, 0, SEEK_SET);
|
lseek(fd, 0, SEEK_SET);
|
||||||
|
|
||||||
if (do_read(fd, self, sizeof(*self)) <= 0 ||
|
if (readn(fd, self, sizeof(*self)) <= 0 ||
|
||||||
memcmp(&self->magic, __perf_magic, sizeof(self->magic)))
|
memcmp(&self->magic, __perf_magic, sizeof(self->magic)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -821,7 +821,7 @@ static int perf_file_header__read_pipe(struct perf_pipe_file_header *self,
|
||||||
struct perf_header *ph, int fd,
|
struct perf_header *ph, int fd,
|
||||||
bool repipe)
|
bool repipe)
|
||||||
{
|
{
|
||||||
if (do_read(fd, self, sizeof(*self)) <= 0 ||
|
if (readn(fd, self, sizeof(*self)) <= 0 ||
|
||||||
memcmp(&self->magic, __perf_magic, sizeof(self->magic)))
|
memcmp(&self->magic, __perf_magic, sizeof(self->magic)))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
|
|
@ -838,23 +838,6 @@ static struct thread *perf_session__register_idle_thread(struct perf_session *se
|
||||||
return thread;
|
return thread;
|
||||||
}
|
}
|
||||||
|
|
||||||
int do_read(int fd, void *buf, size_t size)
|
|
||||||
{
|
|
||||||
void *buf_start = buf;
|
|
||||||
|
|
||||||
while (size) {
|
|
||||||
int ret = read(fd, buf, size);
|
|
||||||
|
|
||||||
if (ret <= 0)
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
size -= ret;
|
|
||||||
buf += ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
return buf - buf_start;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define session_done() (*(volatile int *)(&session_done))
|
#define session_done() (*(volatile int *)(&session_done))
|
||||||
volatile int session_done;
|
volatile int session_done;
|
||||||
|
|
||||||
|
@ -872,7 +855,7 @@ static int __perf_session__process_pipe_events(struct perf_session *self,
|
||||||
|
|
||||||
head = 0;
|
head = 0;
|
||||||
more:
|
more:
|
||||||
err = do_read(self->fd, &event, sizeof(struct perf_event_header));
|
err = readn(self->fd, &event, sizeof(struct perf_event_header));
|
||||||
if (err <= 0) {
|
if (err <= 0) {
|
||||||
if (err == 0)
|
if (err == 0)
|
||||||
goto done;
|
goto done;
|
||||||
|
@ -892,8 +875,7 @@ more:
|
||||||
p += sizeof(struct perf_event_header);
|
p += sizeof(struct perf_event_header);
|
||||||
|
|
||||||
if (size - sizeof(struct perf_event_header)) {
|
if (size - sizeof(struct perf_event_header)) {
|
||||||
err = do_read(self->fd, p,
|
err = readn(self->fd, p, size - sizeof(struct perf_event_header));
|
||||||
size - sizeof(struct perf_event_header));
|
|
||||||
if (err <= 0) {
|
if (err <= 0) {
|
||||||
if (err == 0) {
|
if (err == 0) {
|
||||||
pr_err("unexpected end of event stream\n");
|
pr_err("unexpected end of event stream\n");
|
||||||
|
|
|
@ -109,7 +109,6 @@ void mem_bswap_64(void *src, int byte_size);
|
||||||
|
|
||||||
int perf_session__create_kernel_maps(struct perf_session *self);
|
int perf_session__create_kernel_maps(struct perf_session *self);
|
||||||
|
|
||||||
int do_read(int fd, void *buf, size_t size);
|
|
||||||
void perf_session__update_sample_type(struct perf_session *self);
|
void perf_session__update_sample_type(struct perf_session *self);
|
||||||
void perf_session__set_sample_id_all(struct perf_session *session, bool value);
|
void perf_session__set_sample_id_all(struct perf_session *session, bool value);
|
||||||
void perf_session__set_sample_type(struct perf_session *session, u64 type);
|
void perf_session__set_sample_type(struct perf_session *session, u64 type);
|
||||||
|
|
|
@ -114,3 +114,20 @@ unsigned long convert_unit(unsigned long value, char *unit)
|
||||||
|
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int readn(int fd, void *buf, size_t n)
|
||||||
|
{
|
||||||
|
void *buf_start = buf;
|
||||||
|
|
||||||
|
while (n) {
|
||||||
|
int ret = read(fd, buf, n);
|
||||||
|
|
||||||
|
if (ret <= 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
|
n -= ret;
|
||||||
|
buf += ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
return buf - buf_start;
|
||||||
|
}
|
||||||
|
|
|
@ -265,6 +265,7 @@ void argv_free(char **argv);
|
||||||
bool strglobmatch(const char *str, const char *pat);
|
bool strglobmatch(const char *str, const char *pat);
|
||||||
bool strlazymatch(const char *str, const char *pat);
|
bool strlazymatch(const char *str, const char *pat);
|
||||||
unsigned long convert_unit(unsigned long value, char *unit);
|
unsigned long convert_unit(unsigned long value, char *unit);
|
||||||
|
int readn(int fd, void *buf, size_t size);
|
||||||
|
|
||||||
#define _STR(x) #x
|
#define _STR(x) #x
|
||||||
#define STR(x) _STR(x)
|
#define STR(x) _STR(x)
|
||||||
|
|
Loading…
Reference in New Issue