162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
262306a36Sopenharmony_ci#ifndef _LIBLOCKDEP_LINUX_KALLSYMS_H_
362306a36Sopenharmony_ci#define _LIBLOCKDEP_LINUX_KALLSYMS_H_
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci#include <linux/kernel.h>
662306a36Sopenharmony_ci#include <stdio.h>
762306a36Sopenharmony_ci#include <unistd.h>
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#define KSYM_NAME_LEN 512
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cistruct module;
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cistatic inline const char *kallsyms_lookup(unsigned long addr,
1462306a36Sopenharmony_ci					  unsigned long *symbolsize,
1562306a36Sopenharmony_ci					  unsigned long *offset,
1662306a36Sopenharmony_ci					  char **modname, char *namebuf)
1762306a36Sopenharmony_ci{
1862306a36Sopenharmony_ci	return NULL;
1962306a36Sopenharmony_ci}
2062306a36Sopenharmony_ci
2162306a36Sopenharmony_ci#include <execinfo.h>
2262306a36Sopenharmony_ci#include <stdlib.h>
2362306a36Sopenharmony_cistatic inline void print_ip_sym(const char *loglvl, unsigned long ip)
2462306a36Sopenharmony_ci{
2562306a36Sopenharmony_ci	char **name;
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_ci	name = backtrace_symbols((void **)&ip, 1);
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci	dprintf(STDOUT_FILENO, "%s\n", *name);
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci	free(name);
3262306a36Sopenharmony_ci}
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci#endif
35