Add hook header generators and CI verification workflow (#597)

This commit is contained in:
tequ
2025-10-22 14:25:38 +09:00
committed by GitHub
parent 74477d2c13
commit 96222baf5e
10 changed files with 331 additions and 62 deletions

View File

@@ -0,0 +1,36 @@
name: Verify Generated Hook Headers
on:
push:
pull_request:
jobs:
verify-generated-headers:
strategy:
fail-fast: false
matrix:
include:
- target: hook/error.h
generator: ./hook/generate_error.sh
- target: hook/extern.h
generator: ./hook/generate_extern.sh
- target: hook/sfcodes.h
generator: bash ./hook/generate_sfcodes.sh
- target: hook/tts.h
generator: ./hook/generate_tts.sh
runs-on: ubuntu-latest
name: ${{ matrix.target }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Verify ${{ matrix.target }}
run: |
set -euo pipefail
chmod +x hook/generate_*.sh || true
tmp=$(mktemp)
trap 'rm -f "$tmp"' EXIT
${{ matrix.generator }} > "$tmp"
diff -u ${{ matrix.target }} "$tmp"

View File

@@ -48,4 +48,4 @@
#define TOO_MANY_STATE_MODIFICATIONS -44 #define TOO_MANY_STATE_MODIFICATIONS -44
#define TOO_MANY_NAMESPACES -45 #define TOO_MANY_NAMESPACES -45
#define HOOK_ERROR_CODES #define HOOK_ERROR_CODES
#endif //HOOK_ERROR_CODES #endif //HOOK_ERROR_CODES

View File

@@ -12,8 +12,6 @@ accept(uint32_t read_ptr, uint32_t read_len, int64_t error_code);
extern int64_t extern int64_t
rollback(uint32_t read_ptr, uint32_t read_len, int64_t error_code); rollback(uint32_t read_ptr, uint32_t read_len, int64_t error_code);
// UTIL
extern int64_t extern int64_t
util_raddr( util_raddr(
uint32_t write_ptr, uint32_t write_ptr,
@@ -56,8 +54,6 @@ util_keylet(
uint32_t e, uint32_t e,
uint32_t f); uint32_t f);
// STO
extern int64_t extern int64_t
sto_validate(uint32_t tread_ptr, uint32_t tread_len); sto_validate(uint32_t tread_ptr, uint32_t tread_len);
@@ -85,8 +81,6 @@ sto_erase(
uint32_t read_len, uint32_t read_len,
uint32_t field_id); uint32_t field_id);
// EMITTED TXN
extern int64_t extern int64_t
etxn_burden(void); etxn_burden(void);
@@ -112,8 +106,6 @@ emit(
uint32_t read_ptr, uint32_t read_ptr,
uint32_t read_len); uint32_t read_len);
// FLOAT
extern int64_t extern int64_t
float_set(int32_t exponent, int64_t mantissa); float_set(int32_t exponent, int64_t mantissa);
@@ -174,8 +166,6 @@ float_log(int64_t float1);
extern int64_t extern int64_t
float_root(int64_t float1, uint32_t n); float_root(int64_t float1, uint32_t n);
// LEDGER
extern int64_t extern int64_t
fee_base(void); fee_base(void);
@@ -200,8 +190,6 @@ ledger_keylet(
uint32_t hread_ptr, uint32_t hread_ptr,
uint32_t hread_len); uint32_t hread_len);
// HOOK
extern int64_t extern int64_t
hook_account(uint32_t write_ptr, uint32_t write_len); hook_account(uint32_t write_ptr, uint32_t write_len);
@@ -233,8 +221,6 @@ hook_skip(uint32_t read_ptr, uint32_t read_len, uint32_t flags);
extern int64_t extern int64_t
hook_pos(void); hook_pos(void);
// SLOT
extern int64_t extern int64_t
slot(uint32_t write_ptr, uint32_t write_len, uint32_t slot); slot(uint32_t write_ptr, uint32_t write_len, uint32_t slot);
@@ -262,8 +248,6 @@ slot_type(uint32_t slot_no, uint32_t flags);
extern int64_t extern int64_t
slot_float(uint32_t slot_no); slot_float(uint32_t slot_no);
// STATE
extern int64_t extern int64_t
state_set( state_set(
uint32_t read_ptr, uint32_t read_ptr,
@@ -300,8 +284,6 @@ state_foreign(
uint32_t aread_ptr, uint32_t aread_ptr,
uint32_t aread_len); uint32_t aread_len);
// TRACE
extern int64_t extern int64_t
trace( trace(
uint32_t mread_ptr, uint32_t mread_ptr,
@@ -316,8 +298,6 @@ trace_num(uint32_t read_ptr, uint32_t read_len, int64_t number);
extern int64_t extern int64_t
trace_float(uint32_t read_ptr, uint32_t read_len, int64_t float1); trace_float(uint32_t read_ptr, uint32_t read_len, int64_t float1);
// OTXN
extern int64_t extern int64_t
otxn_burden(void); otxn_burden(void);
@@ -346,9 +326,8 @@ otxn_param(
extern int64_t extern int64_t
meta_slot(uint32_t slot_no); meta_slot(uint32_t slot_no);
// featureHooks1 extern int64_t
xpop_slot(uint32_t slot_no_tx, uint32_t slot_no_meta);
extern int64_t xpop_slot(uint32_t, uint32_t);
#define HOOK_EXTERN #define HOOK_EXTERN
#endif // HOOK_EXTERN #endif // HOOK_EXTERN

58
hook/generate_error.sh Executable file
View File

@@ -0,0 +1,58 @@
#!/bin/bash
set -eu
SCRIPT_DIR=$(dirname "$0")
SCRIPT_DIR=$(cd "$SCRIPT_DIR" && pwd)
ENUM_FILE="$SCRIPT_DIR/../src/ripple/app/hook/Enum.h"
echo '// For documentation please see: https://xrpl-hooks.readme.io/reference/'
echo '// Generated using generate_error.sh'
echo '#ifndef HOOK_ERROR_CODES'
sed -n '/enum hook_return_code/,/};/p' "$ENUM_FILE" |
awk '
function ltrim(s) { sub(/^[[:space:]]+/, "", s); return s }
function rtrim(s) { sub(/[[:space:]]+$/, "", s); return s }
function trim(s) { return rtrim(ltrim(s)) }
function emit(entry) {
entry = trim(entry)
if (entry == "")
return
gsub(/,[[:space:]]*$/, "", entry)
split(entry, parts, "=")
if (length(parts) < 2)
return
name = trim(parts[1])
value = trim(parts[2])
if (name == "" || value == "")
return
printf "#define %s %s\n", name, value
}
{
line = $0
if (line ~ /enum[[:space:]]+hook_return_code/)
next
if (line ~ /^[[:space:]]*\{/)
next
sub(/\/\/.*$/, "", line)
if (line ~ /^[[:space:]]*\};/) {
emit(buffer)
exit
}
if (line ~ /^[[:space:]]*$/)
next
buffer = buffer line " "
if (line ~ /,[[:space:]]*$/) {
emit(buffer)
buffer = ""
}
}
'
echo '#define HOOK_ERROR_CODES'
echo '#endif //HOOK_ERROR_CODES'

145
hook/generate_extern.sh Executable file
View File

@@ -0,0 +1,145 @@
#!/bin/bash
set -eu
SCRIPT_DIR=$(dirname "$0")
SCRIPT_DIR=$(cd "$SCRIPT_DIR" && pwd)
APPLY_HOOK="$SCRIPT_DIR/../src/ripple/app/hook/applyHook.h"
{
echo '// For documentation please see: https://xrpl-hooks.readme.io/reference/'
echo '// Generated using generate_extern.sh'
echo '#include <stdint.h>'
echo '#ifndef HOOK_EXTERN'
echo
awk '
function trim(s) {
sub(/^[[:space:]]+/, "", s);
sub(/[[:space:]]+$/, "", s);
return s;
}
function emit(ret, name, argc, argt, argn) {
attr = (name == "_g") ? " __attribute__((noduplicate))" : "";
if (!first)
printf("\n");
first = 0;
printf("extern %s%s\n", ret, attr);
if (argc == 0) {
printf("%s(void);\n", name);
return;
}
if (argc <= 3) {
line = argt[1] " " argn[1];
for (i = 2; i <= argc; ++i)
line = line ", " argt[i] " " argn[i];
printf("%s(%s);\n", name, line);
return;
}
printf("%s(\n", name);
for (i = 1; i <= argc; ++i) {
sep = (i < argc) ? "," : ");";
printf(" %s %s%s\n", argt[i], argn[i], sep);
}
}
function process(buffer, kind, payload, parts, n, i, arg, tokens, argc, argt, argn) {
if (kind == "func")
sub(/^DECLARE_HOOK_FUNCTION[[:space:]]*\(/, "", buffer);
else
sub(/^DECLARE_HOOK_FUNCNARG[[:space:]]*\(/, "", buffer);
buffer = trim(buffer);
sub(/\)[[:space:]]*$/, "", buffer);
n = split(buffer, parts, ",");
for (i = 1; i <= n; ++i)
parts[i] = trim(parts[i]);
ret = parts[1];
name = parts[2];
argc = 0;
delete argt;
delete argn;
for (i = 3; i <= n; ++i) {
arg = parts[i];
if (arg == "")
continue;
split(arg, tokens, /[[:space:]]+/);
if (length(tokens) < 2)
continue;
++argc;
argt[argc] = tokens[1];
argn[argc] = tokens[2];
}
emit(ret, name, argc, argt, argn);
}
BEGIN {
first = 1;
in_block = 0;
in_macro = 0;
}
{
line = $0;
if (in_block) {
if (line ~ /\*\//) {
sub(/.*\*\//, "", line);
in_block = 0;
}
else
next;
}
while (line ~ /\/\*/) {
if (line ~ /\/\*.*\*\//) {
gsub(/\/\*.*\*\//, "", line);
}
else {
sub(/\/\*.*/, "", line);
in_block = 1;
break;
}
}
sub(/\/\/.*$/, "", line);
line = trim(line);
if (line == "")
next;
if (!in_macro && line ~ /^DECLARE_HOOK_FUNCTION\(/) {
buffer = line;
kind = "func";
if (line ~ /\);[[:space:]]*$/) {
sub(/\);[[:space:]]*$/, "", buffer);
process(buffer, kind);
}
else
in_macro = 1;
next;
}
if (!in_macro && line ~ /^DECLARE_HOOK_FUNCNARG\(/) {
buffer = line;
kind = "narg";
if (line ~ /\);[[:space:]]*$/) {
sub(/\);[[:space:]]*$/, "", buffer);
process(buffer, kind);
}
else
in_macro = 1;
next;
}
if (in_macro) {
buffer = buffer " " line;
if (line ~ /\);[[:space:]]*$/) {
sub(/\);[[:space:]]*$/, "", buffer);
process(buffer, kind);
in_macro = 0;
}
}
}
END {
printf("\n");
}
' "$APPLY_HOOK"
echo '#define HOOK_EXTERN'
echo '#endif // HOOK_EXTERN'
}

View File

@@ -1,8 +1,13 @@
#/bin/bash #!/bin/bash
RIPPLED_ROOT="../src/ripple" set -eu
SCRIPT_DIR=$(dirname "$0")
SCRIPT_DIR=$(cd "$SCRIPT_DIR" && pwd)
RIPPLED_ROOT="$SCRIPT_DIR/../src/ripple"
echo '// For documentation please see: https://xrpl-hooks.readme.io/reference/' echo '// For documentation please see: https://xrpl-hooks.readme.io/reference/'
echo '// Generated using generate_sfcodes.sh' echo '// Generated using generate_sfcodes.sh'
cat $RIPPLED_ROOT/protocol/impl/SField.cpp | grep -E '^CONSTRUCT_' | cat "$RIPPLED_ROOT/protocol/impl/SField.cpp" | grep -E '^CONSTRUCT_' |
sed 's/UINT16,/1,/g' | sed 's/UINT16,/1,/g' |
sed 's/UINT32,/2,/g' | sed 's/UINT32,/2,/g' |
sed 's/UINT64,/3,/g' | sed 's/UINT64,/3,/g' |

38
hook/generate_tts.sh Executable file
View File

@@ -0,0 +1,38 @@
#!/bin/bash
set -eu
SCRIPT_DIR=$(dirname "$0")
SCRIPT_DIR=$(cd "$SCRIPT_DIR" && pwd)
RIPPLED_ROOT="$SCRIPT_DIR/../src/ripple"
TX_FORMATS="$RIPPLED_ROOT/protocol/TxFormats.h"
echo '// For documentation please see: https://xrpl-hooks.readme.io/reference/'
echo '// Generated using generate_tts.sh'
sed -n '/enum TxType/,/};/p' "$TX_FORMATS" |
awk '
function ltrim(s) { sub(/^[[:space:]]+/, "", s); return s }
function rtrim(s) { sub(/[[:space:]]+$/, "", s); return s }
function trim(s) { return rtrim(ltrim(s)) }
/^[ \t]*tt[A-Z0-9_]+/ {
line = $0
deprecated = (line ~ /\[\[deprecated/)
gsub(/\[\[deprecated[^]]*\]\]/, "", line)
sub(/\/\/.*$/, "", line)
gsub(/,[[:space:]]*$/, "", line)
split(line, parts, "=")
if (length(parts) < 2)
next
name = trim(parts[1])
value = trim(parts[2])
if (name == "" || value == "")
next
prefix = deprecated ? "// " : ""
postfix = deprecated ? " // deprecated" : ""
printf "%s#define %s %s%s\n", prefix, name, value, postfix
}
'

View File

@@ -108,6 +108,7 @@
#define sfEmitParentTxnID ((5U << 16U) + 11U) #define sfEmitParentTxnID ((5U << 16U) + 11U)
#define sfEmitNonce ((5U << 16U) + 12U) #define sfEmitNonce ((5U << 16U) + 12U)
#define sfEmitHookHash ((5U << 16U) + 13U) #define sfEmitHookHash ((5U << 16U) + 13U)
#define sfObjectID ((5U << 16U) + 14U)
#define sfBookDirectory ((5U << 16U) + 16U) #define sfBookDirectory ((5U << 16U) + 16U)
#define sfInvoiceID ((5U << 16U) + 17U) #define sfInvoiceID ((5U << 16U) + 17U)
#define sfNickname ((5U << 16U) + 18U) #define sfNickname ((5U << 16U) + 18U)
@@ -132,6 +133,7 @@
#define sfGovernanceFlags ((5U << 16U) + 99U) #define sfGovernanceFlags ((5U << 16U) + 99U)
#define sfGovernanceMarks ((5U << 16U) + 98U) #define sfGovernanceMarks ((5U << 16U) + 98U)
#define sfEmittedTxnID ((5U << 16U) + 97U) #define sfEmittedTxnID ((5U << 16U) + 97U)
#define sfHookCanEmit ((5U << 16U) + 96U)
#define sfCron ((5U << 16U) + 95U) #define sfCron ((5U << 16U) + 95U)
#define sfAmount ((6U << 16U) + 1U) #define sfAmount ((6U << 16U) + 1U)
#define sfBalance ((6U << 16U) + 2U) #define sfBalance ((6U << 16U) + 2U)
@@ -177,6 +179,8 @@
#define sfHookParameterName ((7U << 16U) + 24U) #define sfHookParameterName ((7U << 16U) + 24U)
#define sfHookParameterValue ((7U << 16U) + 25U) #define sfHookParameterValue ((7U << 16U) + 25U)
#define sfBlob ((7U << 16U) + 26U) #define sfBlob ((7U << 16U) + 26U)
#define sfRemarkValue ((7U << 16U) + 98U)
#define sfRemarkName ((7U << 16U) + 99U)
#define sfAccount ((8U << 16U) + 1U) #define sfAccount ((8U << 16U) + 1U)
#define sfOwner ((8U << 16U) + 2U) #define sfOwner ((8U << 16U) + 2U)
#define sfDestination ((8U << 16U) + 3U) #define sfDestination ((8U << 16U) + 3U)
@@ -216,6 +220,7 @@
#define sfHookDefinition ((14U << 16U) + 22U) #define sfHookDefinition ((14U << 16U) + 22U)
#define sfHookParameter ((14U << 16U) + 23U) #define sfHookParameter ((14U << 16U) + 23U)
#define sfHookGrant ((14U << 16U) + 24U) #define sfHookGrant ((14U << 16U) + 24U)
#define sfRemark ((14U << 16U) + 97U)
#define sfGenesisMint ((14U << 16U) + 96U) #define sfGenesisMint ((14U << 16U) + 96U)
#define sfActiveValidator ((14U << 16U) + 95U) #define sfActiveValidator ((14U << 16U) + 95U)
#define sfImportVLKey ((14U << 16U) + 94U) #define sfImportVLKey ((14U << 16U) + 94U)
@@ -236,6 +241,7 @@
#define sfHookExecutions ((15U << 16U) + 18U) #define sfHookExecutions ((15U << 16U) + 18U)
#define sfHookParameters ((15U << 16U) + 19U) #define sfHookParameters ((15U << 16U) + 19U)
#define sfHookGrants ((15U << 16U) + 20U) #define sfHookGrants ((15U << 16U) + 20U)
#define sfRemarks ((15U << 16U) + 97U)
#define sfGenesisMints ((15U << 16U) + 96U) #define sfGenesisMints ((15U << 16U) + 96U)
#define sfActiveValidators ((15U << 16U) + 95U) #define sfActiveValidators ((15U << 16U) + 95U)
#define sfImportVLKeys ((15U << 16U) + 94U) #define sfImportVLKeys ((15U << 16U) + 94U)

View File

@@ -1,4 +1,5 @@
// For documentation please see: https://xrpl-hooks.readme.io/reference/ // For documentation please see: https://xrpl-hooks.readme.io/reference/
// Generated using generate_tts.sh
#define ttPAYMENT 0 #define ttPAYMENT 0
#define ttESCROW_CREATE 1 #define ttESCROW_CREATE 1
#define ttESCROW_FINISH 2 #define ttESCROW_FINISH 2
@@ -8,6 +9,7 @@
// #define ttNICKNAME_SET 6 // deprecated // #define ttNICKNAME_SET 6 // deprecated
#define ttOFFER_CREATE 7 #define ttOFFER_CREATE 7
#define ttOFFER_CANCEL 8 #define ttOFFER_CANCEL 8
// #define ttCONTRACT 9 // deprecated
#define ttTICKET_CREATE 10 #define ttTICKET_CREATE 10
// #define ttSPINAL_TAP 11 // deprecated // #define ttSPINAL_TAP 11 // deprecated
#define ttSIGNER_LIST_SET 12 #define ttSIGNER_LIST_SET 12
@@ -26,6 +28,7 @@
#define ttNFTOKEN_CREATE_OFFER 27 #define ttNFTOKEN_CREATE_OFFER 27
#define ttNFTOKEN_CANCEL_OFFER 28 #define ttNFTOKEN_CANCEL_OFFER 28
#define ttNFTOKEN_ACCEPT_OFFER 29 #define ttNFTOKEN_ACCEPT_OFFER 29
#define ttCLAWBACK 30
#define ttURITOKEN_MINT 45 #define ttURITOKEN_MINT 45
#define ttURITOKEN_BURN 46 #define ttURITOKEN_BURN 46
#define ttURITOKEN_BUY 47 #define ttURITOKEN_BUY 47
@@ -33,6 +36,7 @@
#define ttURITOKEN_CANCEL_SELL_OFFER 49 #define ttURITOKEN_CANCEL_SELL_OFFER 49
#define ttCRON 92 #define ttCRON 92
#define ttCRON_SET 93 #define ttCRON_SET 93
#define ttREMARKS_SET 94
#define ttREMIT 95 #define ttREMIT 95
#define ttGENESIS_MINT 96 #define ttGENESIS_MINT 96
#define ttIMPORT 97 #define ttIMPORT 97

View File

@@ -74,6 +74,7 @@ DECLARE_HOOK_FUNCTION(
uint32_t read_ptr, uint32_t read_ptr,
uint32_t read_len, uint32_t read_len,
int64_t error_code); int64_t error_code);
DECLARE_HOOK_FUNCTION( DECLARE_HOOK_FUNCTION(
int64_t, int64_t,
util_raddr, util_raddr,
@@ -97,6 +98,26 @@ DECLARE_HOOK_FUNCTION(
uint32_t sread_len, uint32_t sread_len,
uint32_t kread_ptr, uint32_t kread_ptr,
uint32_t kread_len); uint32_t kread_len);
DECLARE_HOOK_FUNCTION(
int64_t,
util_sha512h,
uint32_t write_ptr,
uint32_t write_len,
uint32_t read_ptr,
uint32_t read_len);
DECLARE_HOOK_FUNCTION(
int64_t,
util_keylet,
uint32_t write_ptr,
uint32_t write_len,
uint32_t keylet_type,
uint32_t a,
uint32_t b,
uint32_t c,
uint32_t d,
uint32_t e,
uint32_t f);
DECLARE_HOOK_FUNCTION( DECLARE_HOOK_FUNCTION(
int64_t, int64_t,
sto_validate, sto_validate,
@@ -133,25 +154,6 @@ DECLARE_HOOK_FUNCTION(
uint32_t read_len, uint32_t read_len,
uint32_t field_id); uint32_t field_id);
DECLARE_HOOK_FUNCTION(
int64_t,
util_sha512h,
uint32_t write_ptr,
uint32_t write_len,
uint32_t read_ptr,
uint32_t read_len);
DECLARE_HOOK_FUNCTION(
int64_t,
util_keylet,
uint32_t write_ptr,
uint32_t write_len,
uint32_t keylet_type,
uint32_t a,
uint32_t b,
uint32_t c,
uint32_t d,
uint32_t e,
uint32_t f);
DECLARE_HOOK_FUNCNARG(int64_t, etxn_burden); DECLARE_HOOK_FUNCNARG(int64_t, etxn_burden);
DECLARE_HOOK_FUNCTION( DECLARE_HOOK_FUNCTION(
int64_t, int64_t,
@@ -214,7 +216,6 @@ DECLARE_HOOK_FUNCTION(
DECLARE_HOOK_FUNCTION(int64_t, float_invert, int64_t float1); DECLARE_HOOK_FUNCTION(int64_t, float_invert, int64_t float1);
DECLARE_HOOK_FUNCTION(int64_t, float_divide, int64_t float1, int64_t float2); DECLARE_HOOK_FUNCTION(int64_t, float_divide, int64_t float1, int64_t float2);
DECLARE_HOOK_FUNCNARG(int64_t, float_one); DECLARE_HOOK_FUNCNARG(int64_t, float_one);
DECLARE_HOOK_FUNCTION(int64_t, float_mantissa, int64_t float1); DECLARE_HOOK_FUNCTION(int64_t, float_mantissa, int64_t float1);
DECLARE_HOOK_FUNCTION(int64_t, float_sign, int64_t float1); DECLARE_HOOK_FUNCTION(int64_t, float_sign, int64_t float1);
DECLARE_HOOK_FUNCTION( DECLARE_HOOK_FUNCTION(
@@ -226,17 +227,6 @@ DECLARE_HOOK_FUNCTION(
DECLARE_HOOK_FUNCTION(int64_t, float_log, int64_t float1); DECLARE_HOOK_FUNCTION(int64_t, float_log, int64_t float1);
DECLARE_HOOK_FUNCTION(int64_t, float_root, int64_t float1, uint32_t n); DECLARE_HOOK_FUNCTION(int64_t, float_root, int64_t float1, uint32_t n);
DECLARE_HOOK_FUNCTION(
int64_t,
hook_account,
uint32_t write_ptr,
uint32_t write_len);
DECLARE_HOOK_FUNCTION(
int64_t,
hook_hash,
uint32_t write_ptr,
uint32_t write_len,
int32_t hook_no);
DECLARE_HOOK_FUNCNARG(int64_t, fee_base); DECLARE_HOOK_FUNCNARG(int64_t, fee_base);
DECLARE_HOOK_FUNCNARG(int64_t, ledger_seq); DECLARE_HOOK_FUNCNARG(int64_t, ledger_seq);
DECLARE_HOOK_FUNCNARG(int64_t, ledger_last_time); DECLARE_HOOK_FUNCNARG(int64_t, ledger_last_time);
@@ -250,7 +240,6 @@ DECLARE_HOOK_FUNCTION(
ledger_nonce, ledger_nonce,
uint32_t write_ptr, uint32_t write_ptr,
uint32_t write_len); uint32_t write_len);
DECLARE_HOOK_FUNCTION( DECLARE_HOOK_FUNCTION(
int64_t, int64_t,
ledger_keylet, ledger_keylet,
@@ -261,6 +250,17 @@ DECLARE_HOOK_FUNCTION(
uint32_t hread_ptr, uint32_t hread_ptr,
uint32_t hread_len); uint32_t hread_len);
DECLARE_HOOK_FUNCTION(
int64_t,
hook_account,
uint32_t write_ptr,
uint32_t write_len);
DECLARE_HOOK_FUNCTION(
int64_t,
hook_hash,
uint32_t write_ptr,
uint32_t write_len,
int32_t hook_no);
DECLARE_HOOK_FUNCTION( DECLARE_HOOK_FUNCTION(
int64_t, int64_t,
hook_param_set, hook_param_set,
@@ -270,7 +270,6 @@ DECLARE_HOOK_FUNCTION(
uint32_t kread_len, uint32_t kread_len,
uint32_t hread_ptr, uint32_t hread_ptr,
uint32_t hread_len); uint32_t hread_len);
DECLARE_HOOK_FUNCTION( DECLARE_HOOK_FUNCTION(
int64_t, int64_t,
hook_param, hook_param,
@@ -278,9 +277,7 @@ DECLARE_HOOK_FUNCTION(
uint32_t write_len, uint32_t write_len,
uint32_t read_ptr, uint32_t read_ptr,
uint32_t read_len); uint32_t read_len);
DECLARE_HOOK_FUNCNARG(int64_t, hook_again); DECLARE_HOOK_FUNCNARG(int64_t, hook_again);
DECLARE_HOOK_FUNCTION( DECLARE_HOOK_FUNCTION(
int64_t, int64_t,
hook_skip, hook_skip,
@@ -355,6 +352,7 @@ DECLARE_HOOK_FUNCTION(
uint32_t nread_len, uint32_t nread_len,
uint32_t aread_ptr, uint32_t aread_ptr,
uint32_t aread_len); uint32_t aread_len);
DECLARE_HOOK_FUNCTION( DECLARE_HOOK_FUNCTION(
int64_t, int64_t,
trace, trace,