/* SPDX-License-Identifier: BSD-3-Clause */ /* Copyright (c) 2026 Open-IOV contributors */ /* rmtop.h - state and rendering declarations for the rmtop dashboard. */ #ifndef RMTOP_H #define RMTOP_H #include #include "rmtool.h" #define RMTOP_VERSION "0.1.0" #define RMTOP_MAX_ENGINES NV2080_GPU_MAX_ENGINES_LIST_SIZE struct rmtop_state { int gpu_minor; char model[RM_NAME_LEN]; char bdf[RM_BDF_LEN]; char uuid[RM_UUID_LEN]; char driver[80]; int rm_rc; int have_rm; char rm_name[RM_NAME_LEN]; NvU32 mc_arch; NvU32 mc_impl; NvU32 mc_rev; NvU8 mc_subrev; NvU32 vram_total_kib; NvU32 vram_usable_kib; NvU32 heap_size_kib; NvU32 heap_free_kib; NvU32 bar1_size_kib; NvU32 bar1_avail_kib; int have_timer; NvU64 timer_nsec; NvU32 engine_count; NvU32 engine_list[RMTOP_MAX_ENGINES]; char engine_names[RMTOP_MAX_ENGINES][24]; int engine_names_ok; time_t sampled_at; }; int rmtop_collect(struct rm_ctx *ctx, struct rmtop_state *st); void rmtop_render_plain(const struct rmtop_state *st, enum rm_format format); void rmtop_render_curses(const struct rmtop_state *st, int interval_ms, int paused); #endif /* RMTOP_H */