X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=include%2Fbabeltrace%2Fclock-internal.h;h=cd6bdbae03b9d2ecc8ad7f04142378cf280b0a95;hb=e6a63241ead18d0577b4f4cccfa1405c55a663df;hp=6fbc7c32c95143ba2e8ef455a2c65bc358e89432;hpb=75d9ab4b8164f7b2012da916c5b36f1445e9ee09;p=babeltrace.git diff --git a/include/babeltrace/clock-internal.h b/include/babeltrace/clock-internal.h index 6fbc7c32..cd6bdbae 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,17 @@ 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. + */ +static inline +uint64_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 */