X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fclock-internal.h;h=4bd46111c8ab6ab0df757ef97426e75dc94bd690;hb=61cf588beae752e5ddfc60b6b5310f769ac9e852;hp=6fbc7c32c95143ba2e8ef455a2c65bc358e89432;hpb=bb919dd077169b5ee049ba3fc82f8555648cb22e;p=babeltrace.git diff --git a/include/babeltrace/clock-internal.h b/include/babeltrace/clock-internal.h index 6fbc7c32..4bd46111 100644 --- a/include/babeltrace/clock-internal.h +++ b/include/babeltrace/clock-internal.h @@ -20,6 +20,14 @@ * * The above copyright notice and this permission notice shall be included in * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. */ static inline @@ -34,4 +42,18 @@ uint64_t clock_cycles_to_ns(struct ctf_clock *clock, uint64_t cycles) } } +/* + * Note: if using a frequency different from 1GHz for clock->offset, it + * is recommended to express the seconds in offset_s, otherwise there + * will be a loss of precision caused by the limited size of the double + * mantissa. + * This offset can be negative. + */ +static inline +int64_t clock_offset_ns(struct ctf_clock *clock) +{ + return clock->offset_s * 1000000000ULL + + clock_cycles_to_ns(clock, clock->offset); +} + #endif /* _BABELTRACE_CLOCK_INTERNAL_H */