Hallo, dies ist ein Test.
PWD: /www/data-lst1/unixsoft/unixsoft/kaempfer/.public_html
Running in File Mode
Relative path: ././../../../../../../usr/include/libstackdiag.h
Real path: /usr/include/libstackdiag.h
Zurück
/* * Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved. */ #ifndef _LIBSTACKDIAG_H #define _LIBSTACKDIAG_H #include <sys/types.h> #include <sys/list.h> #include <sys/nvpair.h> #ifdef __cplusplus extern "C" { #endif #define MAX_SYMBOL_LEN 512 #define MAX_STACK_LEN 4096 #define MAX_STACKSTR_LEN (MAX_SYMBOL_LEN * MAX_STACK_LEN * 2) #define MAX_EXACT_MATCHES 10 #define MAX_SIMILAR_MATCHES 10 #define LOG_BUF_SZ 1024 #define MOD_SYM_DELIM1 ':' #define MOD_SYM_DELIM2 '`' #define OFFSET_DELIM '+' #define ARGS_DELIM '(' #define FRAME_DELIM '|' #define SMF_FMD_FMRI "svc:/system/fmd:default" #define SMF_FMD_STACKDIAG_PG "stackdiag" #define SMF_FMD_STACKDIAG_PG_PROP "enabled" #define STKDG_DB_VER_1 1 #define STKDG_DB_CUR_VER STKDG_DB_VER_1 #define SCF_CLEANUP { \ scf_value_destroy(val); \ scf_property_destroy(prop); \ scf_pg_destroy(pg); \ scf_instance_destroy(inst); \ scf_handle_destroy(h); \ } /* * In-core structures */ typedef struct symbol { char *sym_name; size_t sym_name_len; struct record **sym_records; size_t sym_records_len; } symbol_t; typedef struct stack { symbol_t **stk_symbols; size_t stk_symbols_len; } stacktrace_t; typedef struct record { uint32_t rec_bugid; stacktrace_t *rec_stack; /* info related to previous query */ int rec_score; int rec_rank; boolean_t rec_is_candidate; } record_t; typedef struct libstackdiag_handle { size_t ss_num_symbols; size_t ss_num_stacks; size_t ss_num_records; symbol_t *ss_symbols; stacktrace_t *ss_stacks; record_t *ss_records; time_t ss_timestamp; time_t ss_expiretime; } libstackdiag_handle_t; typedef struct libstackdiag_results { record_t **res_results; size_t res_results_len; record_t **res_results_long; size_t res_results_long_len; size_t res_exact_matches; size_t res_top_matches; } libstackdiag_results_t; typedef enum { STACKDIAG_ERROR = -1, STACKDIAG_OK = 0, STACKDIAG_TOO_MANY, STACKDIAG_USER_INITIATED, STACKDIAG_NOMATCH, STACKDIAG_NO_SYMBOLS } libstackdiag_rc_t; typedef enum { INIT_REQUIRED = 0, INIT_COMPLETED } init_state_t; #ifdef DEBUG typedef enum debug { DEBUG_DISABLED = 0, DEBUG_ENABLED } debug_t; #define STKDG_DBG(fn, ...) \ if (stkdg_debug) \ stkdg_printf(fn, __VA_ARGS__) #endif /* DEBUG */ extern libstackdiag_handle_t *libstackdiag_init(const char *__dbfile); extern void libstackdiag_fini(void); extern libstackdiag_results_t *libstackdiag_results_alloc(void); extern void libstackdiag_results_free(libstackdiag_results_t *__results); extern libstackdiag_rc_t libstackdiag_query_stack( libstackdiag_results_t *__results, stacktrace_t *__qstack, size_t __max_results); extern int libstackdiag_query_symbols(libstackdiag_results_t *__results, char **__symbols, size_t __symbols_len, size_t __max_results); extern libstackdiag_rc_t libstackdiag_query_stackstr( libstackdiag_results_t *__results, char *__stackstr, size_t __max_results); extern boolean_t libstackdiag_aged(void); int levenshtein(stacktrace_t *__st1, stacktrace_t *__st2, size_t **__matrix); int lcs(stacktrace_t *__st1, stacktrace_t *__st2, size_t **__matrix); uint8_t stackdiag_smf_disabled(void); #ifdef __cplusplus } #endif #endif /* _LIBSTACKDIAG_H */