/** Check if SBI vendor extension is implemented or not */
bool (*vendor_ext_check)(void);
/** platform specific SBI extension implementation provider */
- int (*vendor_ext_provider)(long extid, long funcid,
+ int (*vendor_ext_provider)(long funcid,
const struct sbi_trap_regs *regs,
unsigned long *out_value,
struct sbi_trap_info *out_trap);
* Invoke platform specific vendor SBI extension implementation.
*
* @param plat pointer to struct sbi_platform
- * @param extid vendor SBI extension id
* @param funcid SBI function id within the extension id
* @param regs pointer to trap registers passed by the caller
* @param out_value output value that can be filled by the callee
*/
static inline int sbi_platform_vendor_ext_provider(
const struct sbi_platform *plat,
- long extid, long funcid,
+ long funcid,
const struct sbi_trap_regs *regs,
unsigned long *out_value,
struct sbi_trap_info *out_trap)
{
if (plat && sbi_platform_ops(plat)->vendor_ext_provider) {
- return sbi_platform_ops(plat)->vendor_ext_provider(extid,
- funcid, regs,
+ return sbi_platform_ops(plat)->vendor_ext_provider(funcid,
+ regs,
out_value,
out_trap);
}
int (*extensions_init)(const struct fdt_match *match,
struct sbi_hart_features *hfeatures);
void (*fw_init)(void *fdt, const struct fdt_match *match);
- int (*vendor_ext_provider)(long extid, long funcid,
+ int (*vendor_ext_provider)(long funcid,
const struct sbi_trap_regs *regs,
unsigned long *out_value,
struct sbi_trap_info *out_trap,
true : false;
}
-static int generic_vendor_ext_provider(long extid, long funcid,
+static int generic_vendor_ext_provider(long funcid,
const struct sbi_trap_regs *regs,
unsigned long *out_value,
struct sbi_trap_info *out_trap)
{
- return generic_plat->vendor_ext_provider(extid, funcid, regs,
+ return generic_plat->vendor_ext_provider(funcid, regs,
out_value, out_trap,
generic_plat_match);
}