|
@@ -279,8 +279,8 @@ int perf_mmap__read_init(struct perf_mmap *md, bool overwrite,
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
|
-int perf_mmap__push(struct perf_mmap *md, bool overwrite,
|
|
|
- void *to, int push(void *to, void *buf, size_t size))
|
|
|
+int perf_mmap__push(struct perf_mmap *md, void *to,
|
|
|
+ int push(void *to, void *buf, size_t size))
|
|
|
{
|
|
|
u64 head = perf_mmap__read_head(md);
|
|
|
u64 end, start;
|
|
@@ -289,16 +289,16 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite,
|
|
|
void *buf;
|
|
|
int rc = 0;
|
|
|
|
|
|
- rc = perf_mmap__read_init(md, overwrite, &start, &end);
|
|
|
+ rc = perf_mmap__read_init(md, md->overwrite, &start, &end);
|
|
|
if (rc < 0)
|
|
|
return (rc == -EAGAIN) ? 0 : -1;
|
|
|
|
|
|
- size = end - start;
|
|
|
+ size = md->end - md->start;
|
|
|
|
|
|
- if ((start & md->mask) + size != (end & md->mask)) {
|
|
|
- buf = &data[start & md->mask];
|
|
|
- size = md->mask + 1 - (start & md->mask);
|
|
|
- start += size;
|
|
|
+ if ((md->start & md->mask) + size != (md->end & md->mask)) {
|
|
|
+ buf = &data[md->start & md->mask];
|
|
|
+ size = md->mask + 1 - (md->start & md->mask);
|
|
|
+ md->start += size;
|
|
|
|
|
|
if (push(to, buf, size) < 0) {
|
|
|
rc = -1;
|
|
@@ -306,9 +306,9 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- buf = &data[start & md->mask];
|
|
|
- size = end - start;
|
|
|
- start += size;
|
|
|
+ buf = &data[md->start & md->mask];
|
|
|
+ size = md->end - md->start;
|
|
|
+ md->start += size;
|
|
|
|
|
|
if (push(to, buf, size) < 0) {
|
|
|
rc = -1;
|
|
@@ -316,7 +316,7 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite,
|
|
|
}
|
|
|
|
|
|
md->prev = head;
|
|
|
- perf_mmap__consume(md, overwrite);
|
|
|
+ perf_mmap__consume(md, md->overwrite);
|
|
|
out:
|
|
|
return rc;
|
|
|
}
|