sentinel-stack/sentinel-vmi/src/kvmi_setup.c
sentinel-stack/sentinel-vmi/src/kvmi_setup.c
Section titled “sentinel-stack/sentinel-vmi/src/kvmi_setup.c”Classes
Section titled “Classes”| Name | |
|---|---|
| struct | kvmi_qemu2introspector_wire |
| struct | kvmi_introspector2qemu_wire |
| struct | kvmi_runtime |
| Name | |
|---|---|
| typedef int(*)(void *dom, unsigned char(*uuid)[16], void *ctx) | kvmi_new_guest_cb_t |
| typedef int(*)(const struct kvmi_qemu2introspector_wire *q2i, struct kvmi_introspector2qemu_wire *i2q, void *ctx) | kvmi_handshake_cb_t |
Functions
Section titled “Functions”| Name | |
|---|---|
| void | copy_cstr(char * dst, size_t dst_sz, const char * src) |
| int | is_numeric_name(const char * s) |
| int | read_pid_cmdline(int pid, char * out, size_t out_sz) |
| int | find_vm_pid(const char * vm_name) |
| int | open_kvm_device(void ) |
| int | open_pid_fd(int pid, const char * fd_name) |
| int | duplicate_fd_by_link_target(int qemu_pid, const char * needle) |
| int | discover_vcpu_fds(struct vmi_session * session, int qemu_pid) |
| int | parse_unix_socket_spec(const char * spec, char * path, size_t path_sz) |
| int | extract_qmp_path_from_cmdline(const char * cmdline, char * path, size_t path_sz) |
| int | parse_kvmi_chardev_spec(const char * spec, char * path, size_t path_sz) |
| int | extract_kvmi_path_from_cmdline(const char * cmdline, char * path, size_t path_sz) |
| int | discover_kvmi_socket_path(const char * vm_name, int qemu_pid, char * path, size_t path_sz) |
| int | socket_write_all(int fd, const char * buf, size_t len) |
| int | socket_read_text(int fd, char * buf, size_t buf_sz) |
| int | connect_qmp_channel(int qemu_pid) |
| int | load_required_symbol(void * lib_handle, const char * name, void ** out) |
| int | kvmi_accept_cb(void * dom, unsigned char(*) uuid[16], void * ctx) |
| int | kvmi_handshake_cb(const struct kvmi_qemu2introspector_wire * q2i, struct kvmi_introspector2qemu_wire * i2q, void * ctx) |
| struct kvmi_runtime * | kvmi_runtime_create(void ) |
| void | kvmi_runtime_destroy(struct kvmi_runtime * runtime) |
| int | kvmi_runtime_connect(struct kvmi_runtime * runtime, const char * socket_path, const char * vm_name) |
| int | kvmi_runtime_reconnect(struct vmi_session * session) |
| int | attach_libkvmi(struct vmi_session * session, const char * vm_name) |
| int | kvmi_session_heartbeat(struct vmi_session * session) |
| int | is_candidate_ram_map(const char * perms, const char * path, uint64_t span) |
| int | enumerate_memslots_from_maps(struct vmi_session * session) |
| int | enumerate_memslots(struct vmi_session * session) |
| struct vmi_session * | kvmi_setup(const char * vm_name) |
| void | kvmi_teardown(struct vmi_session * session) |
Defines
Section titled “Defines”| Name | |
|---|---|
| VMI_MAX_MEMSLOTS | |
| QMP_REPLY_MAX | |
| MIN_RAM_MAPPING_SIZE | |
| KVMI_CONNECT_WAIT_STEPS | |
| KVMI_CONNECT_WAIT_US | |
| KVMI_HEARTBEAT_MAX_MISSES |
Types Documentation
Section titled “Types Documentation”typedef kvmi_new_guest_cb_t
Section titled “typedef kvmi_new_guest_cb_t”typedef int(* kvmi_new_guest_cb_t) (void *dom, unsigned char(*uuid)[16], void *ctx);typedef kvmi_handshake_cb_t
Section titled “typedef kvmi_handshake_cb_t”typedef int(* kvmi_handshake_cb_t) (const struct kvmi_qemu2introspector_wire *q2i, struct kvmi_introspector2qemu_wire *i2q, void *ctx);Functions Documentation
Section titled “Functions Documentation”function copy_cstr
Section titled “function copy_cstr”static void copy_cstr( char * dst, size_t dst_sz, const char * src)function is_numeric_name
Section titled “function is_numeric_name”static int is_numeric_name( const char * s)function read_pid_cmdline
Section titled “function read_pid_cmdline”static int read_pid_cmdline( int pid, char * out, size_t out_sz)function find_vm_pid
Section titled “function find_vm_pid”static int find_vm_pid( const char * vm_name)function open_kvm_device
Section titled “function open_kvm_device”static int open_kvm_device( void)function open_pid_fd
Section titled “function open_pid_fd”static int open_pid_fd( int pid, const char * fd_name)function duplicate_fd_by_link_target
Section titled “function duplicate_fd_by_link_target”static int duplicate_fd_by_link_target( int qemu_pid, const char * needle)function discover_vcpu_fds
Section titled “function discover_vcpu_fds”static int discover_vcpu_fds( struct vmi_session * session, int qemu_pid)function parse_unix_socket_spec
Section titled “function parse_unix_socket_spec”static int parse_unix_socket_spec( const char * spec, char * path, size_t path_sz)function extract_qmp_path_from_cmdline
Section titled “function extract_qmp_path_from_cmdline”static int extract_qmp_path_from_cmdline( const char * cmdline, char * path, size_t path_sz)function parse_kvmi_chardev_spec
Section titled “function parse_kvmi_chardev_spec”static int parse_kvmi_chardev_spec( const char * spec, char * path, size_t path_sz)function extract_kvmi_path_from_cmdline
Section titled “function extract_kvmi_path_from_cmdline”static int extract_kvmi_path_from_cmdline( const char * cmdline, char * path, size_t path_sz)function discover_kvmi_socket_path
Section titled “function discover_kvmi_socket_path”static int discover_kvmi_socket_path( const char * vm_name, int qemu_pid, char * path, size_t path_sz)function socket_write_all
Section titled “function socket_write_all”static int socket_write_all( int fd, const char * buf, size_t len)function socket_read_text
Section titled “function socket_read_text”static int socket_read_text( int fd, char * buf, size_t buf_sz)function connect_qmp_channel
Section titled “function connect_qmp_channel”static int connect_qmp_channel( int qemu_pid)function load_required_symbol
Section titled “function load_required_symbol”static int load_required_symbol( void * lib_handle, const char * name, void ** out)function kvmi_accept_cb
Section titled “function kvmi_accept_cb”static int kvmi_accept_cb( void * dom, unsigned char(*) uuid[16], void * ctx)function kvmi_handshake_cb
Section titled “function kvmi_handshake_cb”static int kvmi_handshake_cb( const struct kvmi_qemu2introspector_wire * q2i, struct kvmi_introspector2qemu_wire * i2q, void * ctx)function kvmi_runtime_create
Section titled “function kvmi_runtime_create”static struct kvmi_runtime * kvmi_runtime_create( void)function kvmi_runtime_destroy
Section titled “function kvmi_runtime_destroy”static void kvmi_runtime_destroy( struct kvmi_runtime * runtime)function kvmi_runtime_connect
Section titled “function kvmi_runtime_connect”static int kvmi_runtime_connect( struct kvmi_runtime * runtime, const char * socket_path, const char * vm_name)function kvmi_runtime_reconnect
Section titled “function kvmi_runtime_reconnect”static int kvmi_runtime_reconnect( struct vmi_session * session)function attach_libkvmi
Section titled “function attach_libkvmi”static int attach_libkvmi( struct vmi_session * session, const char * vm_name)function kvmi_session_heartbeat
Section titled “function kvmi_session_heartbeat”int kvmi_session_heartbeat( struct vmi_session * session)function is_candidate_ram_map
Section titled “function is_candidate_ram_map”static int is_candidate_ram_map( const char * perms, const char * path, uint64_t span)function enumerate_memslots_from_maps
Section titled “function enumerate_memslots_from_maps”static int enumerate_memslots_from_maps( struct vmi_session * session)function enumerate_memslots
Section titled “function enumerate_memslots”static int enumerate_memslots( struct vmi_session * session)function kvmi_setup
Section titled “function kvmi_setup”struct vmi_session * kvmi_setup( const char * vm_name)function kvmi_teardown
Section titled “function kvmi_teardown”void kvmi_teardown( struct vmi_session * session)Macros Documentation
Section titled “Macros Documentation”define VMI_MAX_MEMSLOTS
Section titled “define VMI_MAX_MEMSLOTS”#define VMI_MAX_MEMSLOTS 256define QMP_REPLY_MAX
Section titled “define QMP_REPLY_MAX”#define QMP_REPLY_MAX 4096define MIN_RAM_MAPPING_SIZE
Section titled “define MIN_RAM_MAPPING_SIZE”#define MIN_RAM_MAPPING_SIZE (2ULL * 1024ULL * 1024ULL)define KVMI_CONNECT_WAIT_STEPS
Section titled “define KVMI_CONNECT_WAIT_STEPS”#define KVMI_CONNECT_WAIT_STEPS 20define KVMI_CONNECT_WAIT_US
Section titled “define KVMI_CONNECT_WAIT_US”#define KVMI_CONNECT_WAIT_US 100000define KVMI_HEARTBEAT_MAX_MISSES
Section titled “define KVMI_HEARTBEAT_MAX_MISSES”#define KVMI_HEARTBEAT_MAX_MISSES 3Updated on 2026-05-26 at 13:25:29 +0000