mirror of
https://dev.lirent.ru/Vatrog/vm-introspection-engine.git
synced 2026-07-09 00:46:36 +03:00
27 lines
1.0 KiB
C
27 lines
1.0 KiB
C
|
|
/* semsig_stub.c - the OFF (no-backend) path of the semantic-signature feature.
|
||
|
|
*
|
||
|
|
* Built into the library ONLY when VMIE_DISASM=OFF (the default). It provides
|
||
|
|
* the full public generic surface so the ABI is stable - linking never fails
|
||
|
|
* for a missing symbol - while the feature is not present:
|
||
|
|
* semsig_hash -> 0 (the same "no hash" sentinel as func_hash)
|
||
|
|
* semsig_backend_name -> "none"
|
||
|
|
* Callers tell "feature off" from "empty/undecodable function" via the compile-
|
||
|
|
* time macro VMIE_HAVE_DISASM (0 here), NOT via the runtime 0.
|
||
|
|
*
|
||
|
|
* In the OFF build semsig.c is NOT compiled (it calls the backend decode, which
|
||
|
|
* does not exist without a backend); this stub is the whole generic symbol. See
|
||
|
|
* CMakeLists.txt for the source-selection logic.
|
||
|
|
*/
|
||
|
|
#include <stdint.h>
|
||
|
|
#include "semsig.h"
|
||
|
|
|
||
|
|
uint64_t semsig_hash(mem_view_t fn) __attribute__((cold));
|
||
|
|
uint64_t semsig_hash(mem_view_t fn) {
|
||
|
|
(void)fn;
|
||
|
|
return 0; /* feature not built: same sentinel as func_hash */
|
||
|
|
}
|
||
|
|
|
||
|
|
const char* semsig_backend_name(void) {
|
||
|
|
return "none";
|
||
|
|
}
|