Good Day,
A very simple hello world kind of module.
It does print message from init and exit routine but from with in probe() function it won't print ant thing.
I suspect probe wont get executed.
Code:
#include <linux/module.h> /* Needed by all modules */
#include <linux/kernel.h> /* Needed for KERN_INFO */
#include<linux/pci.h>
#define MY_VENDOR_ID 0x109e
#define MY_DEVICE_ID 0x036e
struct pci_device_id my_driver_pci_table[] __devinitdata = {
{
MY_VENDOR_ID,
PCI_ANY_ID,
MY_DEVICE_ID,
0,0
}, {0},
};
static int __devinit my_driver_probe(struct pci_dev *pdev, const struct pci_device_id *id)
{
pci_enable_device(pdev);
printk("--------------------------------\n");
printk("message from inside of probe function \n\n");
printk("--------------------------------\n");
}
struct pci_driver my_pci_driver = {
.name = "mydrv",
.probe = my_driver_probe,
// .remove = __devexit_p(my_driver_remove),
.id_table = my_driver_pci_table,
};
static int __init my_driver_init(void)
{
pci_register_driver(&my_pci_driver);
printk("--------------------------------\n");
printk("Msg from init fonction\n\n");
printk("--------------------------------\n");
return 0;
}
static void __exit my_driver_exit(void)
{
pci_unregister_driver(&my_pci_driver);
printk("un registering hello-1\n");
}
module_init(my_driver_init);
module_exit(my_driver_exit);
MODULE_DEVICE_TABLE(pci,my_driver_pci_table);
output from /var/log/message
Code:
[root@ku backup]# tail -n 10 /var/log/messages
Aug 12 14:45:36 ku kernel: --------------------------------
Aug 12 14:46:39 ku kernel: un registering hello-1--------------------------------
Aug 12 14:46:39 ku kernel: Msg from init fonction
Aug 12 14:46:39 ku kernel:
Aug 12 14:46:39 ku kernel: --------------------------------
Aug 12 14:55:12 ku kernel: un registering hello-1
Aug 12 14:56:49 ku kernel: --------------------------------
Aug 12 14:56:49 ku kernel: Msg from init fonction
Aug 12 14:56:49 ku kernel:
Aug 12 14:56:49 ku kernel: --------------------------------
[root@ku backup]#
Thanks.