int (*probe)(…)指向platform驱动程序中的探测函数的指针。当platform核心有一个它认为驱动程序需要控制的struct platform_device时,就会调用该函数。所以我们会在这个函数中写驱动程序的逻辑。 int (*remove)(…)指向一个移除函数的指针,当struct platform_device被从系统中移除,或者platform驱动程序正在从内核中卸载时,platform核心调用该函数。 为了把struct platform_driver注册到platform核心中,需要调用以struct platform_driver为参数的platform_driver_register函数。通常在platform驱动程序的模块化代码中完成该工程。
int main(int argc, char **argv) { int fd; int val; fd = open("/dev/sr501", O_RDWR); if (fd == -1) { printf("can not open file %s ", argv[1]); return -1; }
while (1) { read(fd, &val, 4); if (val == 0x1) { printf("detect people "); } }