summaryrefslogtreecommitdiff
path: root/simpleperf/utils.cpp
diff options
context:
space:
mode:
authorYabin Cui <yabinc@google.com>2015-04-28 15:54:13 -0700
committerYabin Cui <yabinc@google.com>2015-05-04 14:32:32 -0700
commit9759e1b1ce76185aa539aeea2fb1cbd8382156e7 (patch)
tree69196161e28ebe74fb27093e026983fd98b004da /simpleperf/utils.cpp
parent249518de7cb7ddb1c066b3bb8b10bc0f66222f7d (diff)
downloadextras-9759e1b1ce76185aa539aeea2fb1cbd8382156e7.tar.gz
Implement simpleperf record/dumprecord subcommands.
Bug: 19483574 Change-Id: Id879713a75c2d3a6289d8847b95ee0bb4a2cc8a0
Diffstat (limited to 'simpleperf/utils.cpp')
-rw-r--r--simpleperf/utils.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/simpleperf/utils.cpp b/simpleperf/utils.cpp
index f7819cbe..eea8988e 100644
--- a/simpleperf/utils.cpp
+++ b/simpleperf/utils.cpp
@@ -26,22 +26,21 @@
void PrintIndented(size_t indent, const char* fmt, ...) {
va_list ap;
va_start(ap, fmt);
- printf("%*s", static_cast<int>(indent), "");
+ printf("%*s", static_cast<int>(indent * 2), "");
vprintf(fmt, ap);
va_end(ap);
}
-bool ReadNBytesFromFile(int fd, void* buf, size_t nbytes) {
- char* p = reinterpret_cast<char*>(buf);
- size_t bytes_left = nbytes;
- while (bytes_left > 0) {
- ssize_t nread = TEMP_FAILURE_RETRY(read(fd, p, bytes_left));
- if (nread <= 0) {
- return false;
- } else {
- p += nread;
- bytes_left -= nread;
- }
+bool IsPowerOfTwo(uint64_t value) {
+ return (value != 0 && ((value & (value - 1)) == 0));
+}
+
+bool NextArgumentOrError(const std::vector<std::string>& args, size_t* pi) {
+ if (*pi + 1 == args.size()) {
+ LOG(ERROR) << "No argument following " << args[*pi] << " option. Try `simpleperf help "
+ << args[0] << "`";
+ return false;
}
+ ++*pi;
return true;
}