mmi_register_asi_action
NAME
mmi_register_asi_action() - Register specific ASI read/write
handlers for module
SYNOPSIS
#include "mmi.h"
/* for non-peripheral "devices" that implement ASIs */
/* register call back functions for asi load/store for a particular asi.
*/
typedef int (*mmi_ld_asi_action) (void *cbd,
uint32_t asi, uint64_t vaddr, uint64_t *buf, int size,uint32_t cpuid);
typedef int (*mmi_st_asi_action) (void *cbd,
uint32_t asi, uint64_t vaddr, uint64_t buf, int size,uint32_t cpuid);
void mmi_register_asi_action (mmi_instance_t instance, uint32_t asi,
mmi_ld_asi_action ld_handler, mmi_st_asi_action st_handler);
DESCRIPTION
Registers read (ld_handler) and write(st_handler) call back functions for a particular asi
The call back object data (cbd) which has been registered
through mmi_
register_asi_cb_data API and the vaddr will also be
passed to the
asi read/write
handlers along with the other parameters.
RETURN VALUES
No return value.
USAGE EXAMPLE
extern "C" int rock_siu_asi_read_handler(void *cbd, uint32_t asi, uint64_t vaddr, uint64_t *buf, int size,uint32_t strandId){
return Rock_Siu::asiReadHandler(cbd,asi,vaddr,buf,size,strandId);
}
extern "C" int rock_siu_asi_write_handler(void *cbd, uint32_t asi, uint64_t vaddr, uint64_t buf,int size, uint32_t strandId){
return Rock_Siu::asiWriteHandler(cbd,asi,vaddr,buf,size,strandId);
}
bool
Rock_Siu::check_args() {
mmi_register_asi_cb_data(instance, this);
mmi_register_asi_action(instance, Rock_Imu::ASI_QUEUE,rock_siu_asi_read_handler,rock_siu_asi_write_handler);
}
SEE ALSO