/** @file si_templates.h @brief Common templates used in SI events @details Copyright (c) 2024 Acronis International GmbH @author Denis Kopyrin ([email protected]) @since $Id: $ */ #pragma once #include "si_fp_properties.h" #define SI_CONTAINER_NAME_LIMIT 128 // Currently all events have at least the following fields // Might be revised at the future but currently all of those are used by userspace #define SI_COMMON_FIELDS(tmpl) \ tmpl(FP_SI_PI_EVENT_UID) \ tmpl(FP_SI_PI_THREAD_ID) \ tmpl(FP_SI_PI_PROCESS_ID) \ tmpl(FP_SI_PI_EVENT_TIMESTAMP) \ tmpl(FP_SI_PI_PROCESS_ID_VERSION) #define SI_COMMON_FS_FIELDS(tmpl) \ SI_COMMON_FIELDS(tmpl) \ tmpl(FP_SI_PI_FSUID) \ tmpl(FP_SI_PI_FSGID) #define SI_COMMON_CRED_FIELDS(tmpl) \ tmpl(FP_SI_PI_USER_ID) \ tmpl(FP_SI_PI_GROUP_ID) \ tmpl(FP_SI_PI_EFFECTIVE_USER_ID) \ tmpl(FP_SI_PI_EFFECTIVE_GROUP_ID) \ tmpl(FP_SI_PI_SAVED_USER_ID) \ tmpl(FP_SI_PI_SAVED_GROUP_ID) \ tmpl(FP_SI_PI_AUDIT_SESSION_ID) \ tmpl(FP_SI_PI_AUDIT_USER_ID) #define SI_COMMON_OBJECT_FILE_IDS_FIELDS(tmpl) \ tmpl(FP_SI_PI_OBJECT_ID) \ tmpl(FP_SI_PI_OBJECT_FILE_GENERATION) \ tmpl(FP_SI_PI_OBJECT_FILE_PTR) \ tmpl(FP_SI_PI_OBJECT_FILE_SUPERBLOCK_DEV) \ tmpl(FP_SI_PI_OBJECT_FILE_INODE_INO) \ tmpl(FP_SI_PI_OBJECT_FILE_HANDLE) \ tmpl(FP_SI_PI_OBJECT_FILE_MOUNT_ID) \ tmpl(FP_SI_PI_FILE_ATTRIBUTES) \ tmpl(FP_SI_PI_FILE_MODE) \ tmpl(FP_SI_PI_FILE_SIZE) \ tmpl(FP_SI_PI_FILE_UID) \ tmpl(FP_SI_PI_FILE_GID) \ tmpl(FP_SI_PI_FILE_CHANGE_TIME) \ tmpl(FP_SI_PI_FILE_BIRTH_TIME) \ tmpl(FP_SI_PI_FILE_ACCESS_TIME) \ tmpl(FP_SI_PI_FILE_MODIFICATION_TIME) \ tmpl(FP_SI_PI_VOLUME_ID_HIGH) \ tmpl(FP_SI_PI_VOLUME_ID_LOW) \ tmpl(FP_SI_PI_VOLUME_MAGIC) #define SI_COMMON_OBJECT_FILE_FIELDS(tmpl) \ tmpl(FP_SI_PI_OBJECT_NAME) \ SI_COMMON_OBJECT_FILE_IDS_FIELDS(tmpl) #define SI_COMMON_IMAGE_NAME_FIELDS(tmpl) \ tmpl(FP_SI_PI_IMAGE_FILE_NAME) \ tmpl(FP_SI_PI_PROCESS_FILE_NAME_IS_NOT_PATH) #define SI_COMMON_EXE_FILE_FIELDS(tmpl) \ SI_COMMON_IMAGE_NAME_FIELDS(tmpl) \ SI_COMMON_OBJECT_FILE_IDS_FIELDS(tmpl) #define SI_COMMON_TARGET_FILE_FIELDS(tmpl) \ tmpl(FP_SI_PI_TARGET_NAME) \ tmpl(FP_SI_PI_TARGET_ID) \ tmpl(FP_SI_PI_TARGET_FILE_GENERATION) \ tmpl(FP_SI_PI_TARGET_FILE_PTR) \ tmpl(FP_SI_PI_TARGET_FILE_SUPERBLOCK_DEV) \ tmpl(FP_SI_PI_TARGET_FILE_INODE_INO) \ tmpl(FP_SI_PI_TARGET_FILE_HANDLE) \ tmpl(FP_SI_PI_TARGET_FILE_MOUNT_ID) \ tmpl(FP_SI_PI_TARGET_FILE_ATTRIBUTES) \ tmpl(FP_SI_PI_TARGET_FILE_MODE) \ tmpl(FP_SI_PI_TARGET_FILE_SIZE) \ tmpl(FP_SI_PI_TARGET_FILE_UID) \ tmpl(FP_SI_PI_TARGET_FILE_GID) \ tmpl(FP_SI_PI_TARGET_FILE_CHANGE_TIME) \ tmpl(FP_SI_PI_TARGET_FILE_BIRTH_TIME) \ tmpl(FP_SI_PI_TARGET_FILE_ACCESS_TIME) \ tmpl(FP_SI_PI_TARGET_FILE_MODIFICATION_TIME) #define SI_COMMON_OBJECT_MINI_FILE_FIELDS(tmpl) \ tmpl(FP_SI_PI_OBJECT_ID) \ tmpl(FP_SI_PI_OBJECT_FILE_GENERATION) \ tmpl(FP_SI_PI_OBJECT_FILE_PTR) \ tmpl(FP_SI_PI_OBJECT_FILE_SUPERBLOCK_DEV) \ tmpl(FP_SI_PI_OBJECT_FILE_INODE_INO)