【求助】driver_register后,怎样从用户程序中使用驱动程序?
各位大侠,最近我在研究一个驱动程序,就是IBM 的RDAC 它如下:
static int __init mppLnx_vhba_init(void)
{
int error;
error = device_register(&mppLnx_primary_device);
if(error)
{
goto cleanup_primary;
}
error = bus_register(&mppLnx_mppv_bus);
if(error)
{
goto cleanup_bus;
}
error = driver_register(&mppLnx_mppvbus_driver);
if(error)
{
goto cleanup_driver;
}
error = device_register(&mppLnx_mppvadapter0);
if(error)
{
goto cleanup_adapter;
}
}
注册了几个设备和驱动程序,他们的结构为:
#define MPPLNX_MPP_PRIMARY_DEVICE_NAME "mppvirtual"
static struct device mppLnx_primary_device = {
.bus_id = MPPLNX_MPP_PRIMARY_DEVICE_NAME,
.release = mppLnx_primary_device_release,
};
/*
* the virtual mpp bus
*/
#define MPPLNX_MPP_VBUS_NAME "mppvbus"
static struct bus_type mppLnx_mppv_bus = {
.name = MPPLNX_MPP_VBUS_NAME,
.match = mppLnx_mppvbus_match,
};
/*
*the virtual bus driver
*/
#define MPPLNX_MPP_VBUS_DRIVER_NAME "mppvdb"
static struct device_driver mppLnx_mppvbus_driver = {
.name = MPPLNX_MPP_VBUS_DRIVER_NAME,
.bus = &mppLnx_mppv_bus,
.probe = mppLnx_mppvbus_driver_probe,
.remove = mppLnx_mppvbus_driver_remove,
};
#define MPPLNX_VADAPTER_NAME "mppadapter0"
static struct device mppLnx_mppvadapter0 = {
.bus_id = MPPLNX_VADAPTER_NAME,
.bus = &mppLnx_mppv_bus,
.parent = &mppLnx_primary_device,
.release = mppLnx_mppvadapter0_release,
};
请问:从用户角度,怎么使用这个整个驱动程序(与字符驱动程序里的open,close等不一样哈)。他们调用(或触发)哪个函数?