12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- /*
- * SPDX-License-Identifier: BSD-2-Clause
- *
- * Copyright (c) 2019 Western Digital Corporation or its affiliates.
- *
- * Authors:
- * Anup Patel <anup.patel@wdc.com>
- */
- #ifndef __SBI_ECALL_H__
- #define __SBI_ECALL_H__
- #include <sbi/sbi_types.h>
- #include <sbi/sbi_list.h>
- #define SBI_ECALL_VERSION_MAJOR 1
- #define SBI_ECALL_VERSION_MINOR 0
- #define SBI_OPENSBI_IMPID 1
- struct sbi_trap_regs;
- struct sbi_trap_info;
- struct sbi_ecall_extension {
- struct sbi_dlist head;
- unsigned long extid_start;
- unsigned long extid_end;
- int (* probe)(unsigned long extid, unsigned long *out_val);
- int (* handle)(unsigned long extid, unsigned long funcid,
- const struct sbi_trap_regs *regs,
- unsigned long *out_val,
- struct sbi_trap_info *out_trap);
- };
- u16 sbi_ecall_version_major(void);
- u16 sbi_ecall_version_minor(void);
- unsigned long sbi_ecall_get_impid(void);
- void sbi_ecall_set_impid(unsigned long impid);
- struct sbi_ecall_extension *sbi_ecall_find_extension(unsigned long extid);
- int sbi_ecall_register_extension(struct sbi_ecall_extension *ext);
- void sbi_ecall_unregister_extension(struct sbi_ecall_extension *ext);
- int sbi_ecall_handler(struct sbi_trap_regs *regs);
- int sbi_ecall_init(void);
- #endif
|