| 1 | // SPDX-License-Identifier: GPL-3.0-or-later |
| 2 | |
| 3 | #ifndef NETDATA_WINDOWS_EVENTS_SOURCES_H |
| 4 | #define NETDATA_WINDOWS_EVENTS_SOURCES_H |
| 5 | |
| 6 | #include "libnetdata/libnetdata.h" |
| 7 | |
| 8 | typedef enum { |
| 9 | WEVTS_NONE = 0, |
| 10 | WEVTS_ALL = (1 << 0), |
| 11 | WEVTS_ADMIN = (1 << 1), |
| 12 | WEVTS_OPERATIONAL = (1 << 2), |
| 13 | WEVTS_ANALYTIC = (1 << 3), |
| 14 | WEVTS_DEBUG = (1 << 4), |
| 15 | WEVTS_WINDOWS = (1 << 5), |
| 16 | WEVTS_ENABLED = (1 << 6), |
| 17 | WEVTS_DISABLED = (1 << 7), |
| 18 | WEVTS_FORWARDED = (1 << 8), |
| 19 | WEVTS_CLASSIC = (1 << 9), |
| 20 | WEVTS_BACKUP_MODE = (1 << 10), |
| 21 | WEVTS_OVERWRITE_MODE = (1 << 11), |
| 22 | WEVTS_STOP_WHEN_FULL_MODE = (1 << 12), |
| 23 | WEVTS_RETAIN_AND_BACKUP_MODE = (1 << 13), |
| 24 | } WEVT_SOURCE_TYPE; |
| 25 | |
| 26 | BITMAP_STR_DEFINE_FUNCTIONS_EXTERN(WEVT_SOURCE_TYPE) |
| 27 | |
| 28 | #define WEVT_SOURCE_ALL_NAME "All" |
| 29 | #define WEVT_SOURCE_ALL_ADMIN_NAME "All-Admin" |
| 30 | #define WEVT_SOURCE_ALL_OPERATIONAL_NAME "All-Operational" |
| 31 | #define WEVT_SOURCE_ALL_ANALYTIC_NAME "All-Analytic" |
| 32 | #define WEVT_SOURCE_ALL_DEBUG_NAME "All-Debug" |
| 33 | #define WEVT_SOURCE_ALL_WINDOWS_NAME "All-Windows" |
| 34 | #define WEVT_SOURCE_ALL_ENABLED_NAME "All-Enabled" |
| 35 | #define WEVT_SOURCE_ALL_DISABLED_NAME "All-Disabled" |
| 36 | #define WEVT_SOURCE_ALL_FORWARDED_NAME "All-Forwarded" |
| 37 | #define WEVT_SOURCE_ALL_CLASSIC_NAME "All-Classic" |
| 38 | #define WEVT_SOURCE_ALL_BACKUP_MODE_NAME "All-In-Backup-Mode" |
| 39 | #define WEVT_SOURCE_ALL_OVERWRITE_MODE_NAME "All-In-Overwrite-Mode" |
| 40 | #define WEVT_SOURCE_ALL_STOP_WHEN_FULL_MODE_NAME "All-In-StopWhenFull-Mode" |
| 41 | #define WEVT_SOURCE_ALL_RETAIN_AND_BACKUP_MODE_NAME "All-In-RetainAndBackup-Mode" |
| 42 | |
| 43 | #define WEVT_SOURCE_ALL_OF_PROVIDER_PREFIX "All-Of-" |
| 44 | |
| 45 | typedef struct { |
| 46 | const char *fullname; |
| 47 | size_t fullname_len; |
| 48 | |
| 49 | const wchar_t *custom_query; |
| 50 | |
| 51 | STRING *source; |
| 52 | STRING *provider; |
| 53 | WEVT_SOURCE_TYPE source_type; |
| 54 | usec_t msg_first_ut; |
| 55 | usec_t msg_last_ut; |
| 56 | size_t size; |
| 57 | |
| 58 | usec_t last_scan_monotonic_ut; |
| 59 | |
| 60 | uint64_t msg_first_id; |
| 61 | uint64_t msg_last_id; |
| 62 | uint64_t entries; |
| 63 | } LOGS_QUERY_SOURCE; |
| 64 | |
| 65 | extern DICTIONARY *wevt_sources; |
| 66 | extern DICTIONARY *used_hashes_registry; |
| 67 | |
| 68 | void wevt_sources_init(void); |
| 69 | void wevt_sources_scan(void); |
| 70 | void buffer_json_wevt_versions(BUFFER *wb); |
| 71 | |
| 72 | void wevt_sources_to_json_array(BUFFER *wb); |
| 73 | WEVT_SOURCE_TYPE wevt_internal_source_type(const char *value); |
| 74 | |
| 75 | int wevt_sources_dict_items_backward_compar(const void *a, const void *b); |
| 76 | int wevt_sources_dict_items_forward_compar(const void *a, const void *b); |
| 77 | |
| 78 | #endif //NETDATA_WINDOWS_EVENTS_SOURCES_H |