1 2 3 4 5 6 7 8 9 10 11 12
13 14 15
16 package xdc.runtime;
17
18 /*!
19 * ======== ITimestampClient ========
20 * Timestamp Client Interface
21 *
22 * This interface defines the methods used by client applications to
23 * get timestamp values. It is implemented by the
24 * `{@link xdc.runtime.Timestamp Timestamp}` module.
25 */
26 @DirectCall
27 interface ITimestampClient {
28
29 /*!
30 * ======== get32 ========
31 * Return a 32-bit timestamp
32 *
33 * @a(returns)
34 * Returns a 32-bit timestamp value.
35 * Use `{@link #getFreq}` to convert this value into units of real time.
36 *
37 * @see #get64
38 */
39
40 Bits32 get32();
41
42 /*!
43 * ======== get64 ========
44 * Return a 64-bit timestamp
45 *
46 * @param(result) pointer to 64-bit result
47 *
48 * This parameter is a pointer to a structure representing a 64-bit
49 * wide timestamp value where the current timestamp is written.
50 *
51 * If the underlying hardware does not support 64-bit resolution, the
52 * `hi` field of `result` is always set to 0; see
53 * `{@link xdc.runtime.Types#Timestamp64}`. So, it is possible for
54 * the `lo` field to wrap around without any change to the `hi` field.
55 * Use `{@link #getFreq}` to convert this value into units of real
56 * time.
57 *
58 * @see #get32
59 */
60
61 Void get64(Types.Timestamp64 *result);
62
63 /*!
64 * ======== getFreq ========
65 * Get the timestamp timer's frequency (in Hz)
66 *
67 * @param(freq) pointer to a 64-bit result
68 *
69 * This parameter is a pointer to a structure representing a 64-bit
70 * wide frequency value where the timer's frequency (in Hz)
71 * is written; see `{@link xdc.runtime.Types#FreqHz}`.
72 * This function provides a way of converting timestamp
73 * values into units of real time.
74 *
75 * @see #get32
76 * @see #get64
77 */
78
79 Void getFreq(Types.FreqHz *freq);
80 }
81 82 83
84