blob: b21d4cbeca5b8b873fa14c9cb5b02e575ddc1301 [file] [log] [blame]
#!/bin/sh
# Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
getfield() {
shift $1
echo $1
}
# Converts a floating point number of seconds to a properly rounded
# number of integer milliseconds.
seconds_to_ms() {
echo $1 | awk '{ print int($1 * 1000.0 + 0.5)}'
}
EVENT=$1
shift
if [ $# -eq 0 ]; then
set -- time
fi
while [ $# -gt 0 ]; do
case "$1" in
time)
TAG=uptime
FIELD=1
;;
# Emit time in milliseconds instead of fractional seconds.
time-ms)
TAG=uptime
FIELD=1
EMIT_MS=1
;;
read-sectors)
TAG=disk
FIELD=3
;;
write-sectors)
TAG=disk
FIELD=7
;;
*)
shift
continue
;;
esac
# The 'boot-complete' upstart job tests for whether an event has
# been recorded by calling this script, so it's not an error if
# the requested event doesn't exist.
EVENTFILE="/tmp/${TAG}-${EVENT}"
if [ -f "$EVENTFILE" ]; then
result=$(getfield $FIELD $(tail -1 "$EVENTFILE"))
if [ -n "$EMIT_MS" ]; then
result=$(seconds_to_ms $result)
fi
echo $result
fi
shift
done