diff options
| author | Steven Rostedt <srostedt@redhat.com> | 2010-02-10 13:05:01 -0500 |
|---|---|---|
| committer | Steven Rostedt <rostedt@goodmis.org> | 2010-02-10 13:05:01 -0500 |
| commit | 37fe347963f8f43d95ca0ccd978a769fd6cc96f3 (patch) | |
| tree | fc874ddcb79e6dbd0a1a54a98aa9bc4256633f00 | |
| parent | d01bb4f5a3a179f3ce83882ab87a81ef088eb12f (diff) | |
trace-cmd: Add calc_page_offset() helper routine
Use calc_page_offset() to performe the:
offset & (handle->page_size - 1)
to prevent any typos and bugs.
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
| -rw-r--r-- | trace-input.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/trace-input.c b/trace-input.c index 3191510..ce7bd09 100644 --- a/trace-input.c +++ b/trace-input.c | |||
| @@ -517,6 +517,11 @@ static int calc_index(struct tracecmd_input *handle, | |||
| 517 | return (unsigned long)ptr - (unsigned long)handle->cpu_data[cpu].page->map; | 517 | return (unsigned long)ptr - (unsigned long)handle->cpu_data[cpu].page->map; |
| 518 | } | 518 | } |
| 519 | 519 | ||
| 520 | static unsigned long long calc_page_offset(struct tracecmd_input *handle, | ||
| 521 | unsigned long long offset) | ||
| 522 | { | ||
| 523 | return offset & ~(handle->page_size - 1); | ||
| 524 | } | ||
| 520 | 525 | ||
| 521 | static int read_page(struct tracecmd_input *handle, off64_t offset, | 526 | static int read_page(struct tracecmd_input *handle, off64_t offset, |
| 522 | void *map) | 527 | void *map) |
| @@ -876,7 +881,7 @@ find_and_peek_event(struct tracecmd_input *handle, unsigned long long offset, | |||
| 876 | return NULL; | 881 | return NULL; |
| 877 | 882 | ||
| 878 | /* Move this cpu index to point to this offest */ | 883 | /* Move this cpu index to point to this offest */ |
| 879 | page_offset = offset & ~(handle->page_size - 1); | 884 | page_offset = calc_page_offset(handle, offset); |
| 880 | 885 | ||
| 881 | if (get_page(handle, cpu, page_offset) < 0) | 886 | if (get_page(handle, cpu, page_offset) < 0) |
| 882 | return NULL; | 887 | return NULL; |
| @@ -924,7 +929,7 @@ tracecmd_read_at(struct tracecmd_input *handle, unsigned long long offset, | |||
| 924 | unsigned long long page_offset; | 929 | unsigned long long page_offset; |
| 925 | int cpu; | 930 | int cpu; |
| 926 | 931 | ||
| 927 | page_offset = offset & ~(handle->page_size - 1); | 932 | page_offset = calc_page_offset(handle, offset); |
| 928 | 933 | ||
| 929 | /* check to see if we have this page already */ | 934 | /* check to see if we have this page already */ |
| 930 | for (cpu = 0; cpu < handle->cpus; cpu++) { | 935 | for (cpu = 0; cpu < handle->cpus; cpu++) { |
| @@ -969,7 +974,7 @@ int tracecmd_refresh_record(struct tracecmd_input *handle, | |||
| 969 | int index; | 974 | int index; |
| 970 | int ret; | 975 | int ret; |
| 971 | 976 | ||
| 972 | page_offset = record->offset & ~(handle->page_size - 1); | 977 | page_offset = calc_page_offset(handle, record->offset); |
| 973 | index = record->offset & (handle->page_size - 1); | 978 | index = record->offset & (handle->page_size - 1); |
| 974 | 979 | ||
| 975 | ret =get_page(handle, record->cpu, page_offset); | 980 | ret =get_page(handle, record->cpu, page_offset); |
| @@ -1150,7 +1155,7 @@ tracecmd_set_cpu_to_timestamp(struct tracecmd_input *handle, int cpu, | |||
| 1150 | end = next; | 1155 | end = next; |
| 1151 | 1156 | ||
| 1152 | next = start + (end - start) / 2; | 1157 | next = start + (end - start) / 2; |
| 1153 | next &= ~(handle->page_size - 1); | 1158 | next = calc_page_offset(handle, next); |
| 1154 | 1159 | ||
| 1155 | /* Prevent an infinite loop if start and end are a page off */ | 1160 | /* Prevent an infinite loop if start and end are a page off */ |
| 1156 | if (next == start) | 1161 | if (next == start) |
| @@ -1206,7 +1211,7 @@ int tracecmd_set_cursor(struct tracecmd_input *handle, | |||
| 1206 | return -1; /* cpu does not have this offset. */ | 1211 | return -1; /* cpu does not have this offset. */ |
| 1207 | 1212 | ||
| 1208 | /* Move this cpu index to point to this offest */ | 1213 | /* Move this cpu index to point to this offest */ |
| 1209 | page_offset = offset & ~(handle->page_size - 1); | 1214 | page_offset = calc_page_offset(handle, offset); |
| 1210 | 1215 | ||
| 1211 | if (get_page(handle, cpu, page_offset) < 0) | 1216 | if (get_page(handle, cpu, page_offset) < 0) |
| 1212 | return -1; | 1217 | return -1; |
