⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chardev.h

📁 对linux内核编程做了详细的解析和举例
💻 H
字号:
/* chardev.h - the header file with the ioctl definitions. * * The declarations here have to be in a header file,  * because they need to be known both to the kernel  * module (in chardev.c) and the process calling ioctl  * (ioctl.c) */#ifndef CHARDEV_H#define CHARDEV_H#include <linux/ioctl.h> /* The major device number. We can't rely on dynamic  * registration any more, because ioctls need to know  * it. */#define MAJOR_NUM 100/* Set the message of the device driver */#define IOCTL_SET_MSG _IOR(MAJOR_NUM, 0, char *)/* _IOR means that we're creating an ioctl command  * number for passing information from a user process * to the kernel module.  * * The first arguments, MAJOR_NUM, is the major device  * number we're using. * * The second argument is the number of the command  * (there could be several with different meanings). * * The third argument is the type we want to get from  * the process to the kernel. *//* Get the message of the device driver */#define IOCTL_GET_MSG _IOR(MAJOR_NUM, 1, char *) /* This IOCTL is used for output, to get the message   * of the device driver. However, we still need the   * buffer to place the message in to be input,   * as it is allocated by the process.  *//* Get the n'th byte of the message */#define IOCTL_GET_NTH_BYTE _IOWR(MAJOR_NUM, 2, int) /* The IOCTL is used for both input and output. It   * receives from the user a number, n, and returns   * Message[n]. *//* The name of the device file */#define DEVICE_FILE_NAME "char_dev"#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -