diff options
author | Yabin Cui <yabinc@google.com> | 2015-04-28 15:54:13 -0700 |
---|---|---|
committer | Yabin Cui <yabinc@google.com> | 2015-05-04 14:32:32 -0700 |
commit | 9759e1b1ce76185aa539aeea2fb1cbd8382156e7 (patch) | |
tree | 69196161e28ebe74fb27093e026983fd98b004da /simpleperf/utils.cpp | |
parent | 249518de7cb7ddb1c066b3bb8b10bc0f66222f7d (diff) | |
download | extras-9759e1b1ce76185aa539aeea2fb1cbd8382156e7.tar.gz |
Implement simpleperf record/dumprecord subcommands.
Bug: 19483574
Change-Id: Id879713a75c2d3a6289d8847b95ee0bb4a2cc8a0
Diffstat (limited to 'simpleperf/utils.cpp')
-rw-r--r-- | simpleperf/utils.cpp | 23 |
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; } |