miscdevice说明

miscdevice:混杂设备,是linux字符设备驱动中的一种,主要变量和函数有

struct miscdevice、misc_register、misc_deregister

miscdevice结构体定义如下:

struct miscdevice  {int minor;const char *name;const struct file_operations *fops;struct list_head list;struct device *parent;struct device *this_device;const char *nodename;mode_t mode;};

主要用到的成员有minor name fops。minor变量取值有宏定义:

#define PSMOUSE_MINOR1#define MS_BUSMOUSE_MINOR2#define ATIXL_BUSMOUSE_MINOR3/*#define AMIGAMOUSE_MINOR4FIXME OBSOLETE */#define ATARIMOUSE_MINOR5#define SUN_MOUSE_MINOR6#define APOLLO_MOUSE_MINOR7#define PC110PAD_MINOR9/*#define ADB_MOUSE_MINOR10FIXME OBSOLETE */#define WATCHDOG_MINOR130/* Watchdog timer     */#define TEMP_MINOR131/* Temperature Sensor */#define RTC_MINOR135#define EFI_RTC_MINOR136/* EFI Time services */#define SUN_OPENPROM_MINOR139#define DMAPI_MINOR140/* DMAPI */#define NVRAM_MINOR144#define SGI_MMTIMER153#define STORE_QUEUE_MINOR155#define I2O_MINOR166#define MICROCODE_MINOR184#define TUN_MINOR200#define MWAVE_MINOR219/* ACP/Mwave Modem */#define MPT_MINOR220#define MPT2SAS_MINOR221#define UINPUT_MINOR223#define HPET_MINOR228#define FUSE_MINOR229#define KVM_MINOR232#define BTRFS_MINOR234#define AUTOFS_MINOR235#define MAPPER_CTRL_MINOR236#define MISC_DYNAMIC_MINOR255

看最后一个MISC_DYNAMIC_NIMOR,minor赋值该宏时,表示该设备的次设备号由系统动态分配。

与linux内核驱动比较

在标准linux内核中misc驱动注册misc设备时,需要提供miscdevice结构体变量,这一点安卓也一样。但标准linux所需提供的miscdevice变量中成员minor若未赋值,默认为MISC_DYNAMIC_MINOR,但在android中,需显式赋值,否则misc_register会注册失败。这一点我在写misc驱动时纳闷了半天,怎么linux上加载好好的驱动,跑到android上就提示加载失败。

更多相关文章

  1. Android应用程序用真机调试步骤
  2. android 获取手机信息工具类
  3. Linux下Android(安卓)ADB驱动安装详解
  4. Android(安卓)-> 如何避免Handler引起内存泄露
  5. 前端 js 判断设备类型是手机还是PC 并打开不同设备下的页面
  6. Maven uploadArchives命令报错:Could not deploy to remote repos
  7. android通过NFC读取卡号
  8. 【ubuntu】Ubuntu中Android(安卓)SDK下载跟配置
  9. android遇到的BUG

随机推荐

  1. Android开发小技巧之对android颜色渐变(Gr
  2. Android使用HttpURLConnection进行POST请
  3. Android(安卓)studio从菜鸟到高手--第一
  4. scaleType / ScaleType
  5. Android核心分析 ---- 电话系统之GSMCall
  6. Android之短信窃听器
  7. MMS and SMS in android
  8. 消息处理机制 —Handler/Thread/Looper &
  9. Android一些经典的开源项目
  10. 六款值得推荐的android(安卓)开源框架