[DTrace-devel] [PATCH v2 06/08] Add macros to access (get and/or set) entries in the 'state' BPF map
Eugene Loh
eugene.loh at oracle.com
Thu Sep 17 21:23:33 PDT 2020
Reviewed-by: Eugene Loh <eugene.loh at oracle.com>
On 09/14/2020 12:51 PM, Kris Van Hees wrote:
> Signed-off-by: Kris Van Hees <kris.van.hees at oracle.com>
> ---
> libdtrace/dt_state.h | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/libdtrace/dt_state.h b/libdtrace/dt_state.h
> index 219a00fc..dff0aabf 100644
> --- a/libdtrace/dt_state.h
> +++ b/libdtrace/dt_state.h
> @@ -8,6 +8,11 @@
> #ifndef _DT_STATE_H
> #define _DT_STATE_H
>
> +#include "dt_bpf.h"
> +#include "dt_impl.h"
> +
> +struct dtrace_hdl;
> +
> /*
> * DTrace 'state' BPF map.
> *
> @@ -34,4 +39,28 @@ typedef enum dt_activity {
> DT_ACTIVITY_STOPPED /* tracing stopped */
> } dt_activity_t;
>
> +static inline uint32_t
> +dt_state_get(dtrace_hdl_t *dtp, uint32_t key)
> +{
> + uint32_t val = 0;
> +
> + dt_bpf_map_lookup(dtp->dt_stmap_fd, &key, &val);
> +
> + return val;
> +}
> +
> +static inline void
> +dt_state_set(dtrace_hdl_t *dtp, uint32_t key, uint32_t val)
> +{
> + dt_bpf_map_update(dtp->dt_stmap_fd, &key, &val);
> +}
> +
> +#define dt_state_get_activity(dtp) ((dt_activity_t) \
> + dt_state_get(dtp, DT_STATE_ACTIVITY))
> +#define dt_state_get_beganon(dtp) dt_state_get(dtp, DT_STATE_BEGANON)
> +#define dt_state_get_endedon(dtp) dt_state_get(dtp, DT_STATE_ENDEDON)
> +
> +#define dt_state_set_activity(dtp, act) dt_state_set(dtp, DT_STATE_ACTIVITY, \
> + (uint32_t)(act))
> +
> #endif /* _DT_STATE_H */
More information about the DTrace-devel
mailing list