-- -- Copyright 2024 The Android Open Source Project -- -- Licensed under the Apache License, Version 2.0 (the "License"); -- you may not use this file except in compliance with the License. -- You may obtain a copy of the License at -- -- https://www.apache.org/licenses/LICENSE-2.0 -- -- Unless required by applicable law or agreed to in writing, software -- distributed under the License is distributed on an "AS IS" BASIS, -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -- See the License for the specific language governing permissions and -- limitations under the License. -- Returns the provided nanosecond duration, which is the default -- representation of time durations in trace processor. Provided for -- consistency with other functions. CREATE PERFETTO FUNCTION time_from_ns( -- Time duration in nanoseconds. nanos LONG ) -- Time duration in nanoseconds. RETURNS TIMESTAMP AS SELECT $nanos; -- Converts a duration in microseconds to nanoseconds, which is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_from_us( -- Time duration in microseconds. micros LONG ) -- Time duration in nanoseconds. RETURNS LONG AS SELECT $micros * 1000; -- Converts a duration in millseconds to nanoseconds, which is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_from_ms( -- Time duration in milliseconds. millis LONG ) -- Time duration in nanoseconds. RETURNS TIMESTAMP AS SELECT $millis * 1000 * 1000; -- Converts a duration in seconds to nanoseconds, which is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_from_s( -- Time duration in seconds. seconds LONG ) -- Time duration in nanoseconds. RETURNS TIMESTAMP AS SELECT $seconds * 1000 * 1000 * 1000; -- Converts a duration in minutes to nanoseconds, which is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_from_min( -- Time duration in minutes. minutes LONG ) -- Time duration in nanoseconds. RETURNS TIMESTAMP AS SELECT $minutes * 60 * 1000 * 1000 * 1000; -- Converts a duration in hours to nanoseconds, which is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_from_hours( -- Time duration in hours. hours LONG ) -- Time duration in nanoseconds. RETURNS TIMESTAMP AS SELECT $hours * 60 * 60 * 1000 * 1000 * 1000; -- Converts a duration in days to nanoseconds, which is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_from_days( -- Time duration in days. days LONG ) -- Time duration in nanoseconds. RETURNS LONG AS SELECT $days * 24 * 60 * 60 * 1000 * 1000 * 1000; -- Returns the provided nanosecond duration, which is the default -- representation of time durations in trace processor. Provided for -- consistency with other functions. CREATE PERFETTO FUNCTION time_to_ns( -- Time duration in nanoseconds. nanos TIMESTAMP ) -- Time duration in nanoseconds. RETURNS LONG AS SELECT $nanos; -- Converts a duration in nanoseconds to microseconds. Nanoseconds is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_to_us( -- Time duration in nanoseconds. nanos TIMESTAMP ) -- Time duration in microseconds. RETURNS LONG AS SELECT $nanos / 1000; -- Converts a duration in nanoseconds to millseconds. Nanoseconds is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_to_ms( -- Time duration in nanoseconds. nanos TIMESTAMP ) -- Time duration in milliseconds. RETURNS LONG AS SELECT $nanos / ( 1000 * 1000 ); -- Converts a duration in nanoseconds to seconds. Nanoseconds is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_to_s( -- Time duration in nanoseconds. nanos TIMESTAMP ) -- Time duration in seconds. RETURNS LONG AS SELECT $nanos / ( 1000 * 1000 * 1000 ); -- Converts a duration in nanoseconds to minutes. Nanoseconds is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_to_min( -- Time duration in nanoseconds. nanos TIMESTAMP ) -- Time duration in minutes. RETURNS LONG AS SELECT $nanos / ( 60 * 1000 * 1000 * 1000 ); -- Converts a duration in nanoseconds to hours. Nanoseconds is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_to_hours( -- Time duration in nanoseconds. nanos TIMESTAMP ) -- Time duration in hours. RETURNS LONG AS SELECT $nanos / ( 60 * 60 * 1000 * 1000 * 1000 ); -- Converts a duration in nanoseconds to days. Nanoseconds is the default -- representation of time durations in trace processor. CREATE PERFETTO FUNCTION time_to_days( -- Time duration in nanoseconds. nanos TIMESTAMP ) -- Time duration in days. RETURNS LONG AS SELECT $nanos / ( 24 * 60 * 60 * 1000 * 1000 * 1000 );