adm_ioctl.c
来自「Ethernet switch driver for adm6996L」· C语言 代码 · 共 48 行
C
48 行
#include <linux/config.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/types.h>#include <linux/miscdevice.h>#include <linux/init.h>#include <linux/ioctl.h>#include <linux/fcntl.h>#include <asm/uaccess.h>#include "adm6996.h"adm_info_t* ainfo;static int adm_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg);static int adm_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg){ // struct adm_ioc aioc; uint32 val; struct adm_port_stat aps[6]; switch (cmd) { case ADM_GET_CHIPID: adm_rreg (ainfo, 1, 0, &val); goto return_val; case ADM_GET_PORTS_NUM: val = 6; goto return_val; case ADM_GET_PORTS: { adm_get_ports_stats (6, aps); return copy_to_user((void *)arg, &aps, 50) ? -EFAULT : 0; } default: return -EINVAL; }return_val: return copy_to_user((void *)arg, &val, sizeof val) ? -EFAULT : 0;}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?