Linux ';魔术';值设备驱动程序
Linux ';魔术';值设备驱动程序,linux,driver,device,Linux,Driver,Device,tty\u驱动程序结构中的“魔力”值是什么 struct tty_driver { int magic; /* magic number for this structure */ struct kref kref; /* Reference management */ struct cdev cdev; struct module *owner; const char *driver_name; ....
tty\u驱动程序结构中的“魔力”值是什么
struct tty_driver {
int magic; /* magic number for this structure */
struct kref kref; /* Reference management */
struct cdev cdev;
struct module *owner;
const char *driver_name;
....
....
我不明白为什么它被称为“magic”magic数字通常指用于标识结构、文件类型或软件的特定常量。在这种情况下,tty_驱动程序的幻数显然总是这样定义的:
#define TTY_DRIVER_MAGIC 0x5402
在这种情况下,幻数的一个实际用途可能是检查第一个sizeof(int)
字节的值,并确保它们==0x5402
,然后将其余接收字节强制转换为tty\u驱动程序结构。在这方面,它还可以用于确定报头其余部分的适当字节顺序(小/大端)