blob: 965e34c71ed930e5ef9be0035ef9297188fa3c4f [file]
/*
* Copyright (C) 2026 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*/
#ifndef SRC_PERFETTO_SQL_SYNTAQLITE_INLINE_DISPATCH_H_
#define SRC_PERFETTO_SQL_SYNTAQLITE_INLINE_DISPATCH_H_
/* Inline dialect dispatch for syntaqlite_perfetto.c — replaces the dialect
* function-pointer indirection with direct calls. Enabled via
* -DSYNTAQLITE_INLINE_DIALECT_DISPATCH=\"...\". */
#define SYNQ_PARSER_ALLOC(d, m, c) SynqPerfettoParseAlloc(m, c)
#define SYNQ_PARSER_INIT(d, p, c) SynqPerfettoParseInit(p, c)
#define SYNQ_PARSER_FINALIZE(d, p) SynqPerfettoParseFinalize(p)
#define SYNQ_PARSER_FREE(d, p, f) SynqPerfettoParseFree(p, f)
#define SYNQ_PARSER_FEED(d, p, t, m) SynqPerfettoParse(p, t, m)
/* SynqPerfettoParseTrace is only declared under !NDEBUG (Lemon trace hook). */
#ifndef NDEBUG
#define SYNQ_PARSER_TRACE(d, f, s) \
do { \
SynqPerfettoParseTrace(f, s); \
} while (0)
#else
#define SYNQ_PARSER_TRACE(d, f, s) ((void)(d), (void)(f), (void)(s))
#endif
#define SYNQ_GET_TOKEN(env, z, t) SynqPerfettoGetToken(env, z, t)
#endif // SRC_PERFETTO_SQL_SYNTAQLITE_INLINE_DISPATCH_H_