您现在的位置: 爱51代码网 >> 范文 >> 文章正文
OpenRisc-21-添加自己的IP core到ORSoC并测试
LL;
 
 data = (char*)kmalloc(4, GFP_KERNEL);
 if((ret_val = copy_from_user(new_regs, (struct reg_data*)ioctl_param, sizeof(struct reg_data))) != 0)

 ioread32(g_mkg_mem_base+length);
 printk("============read:%d\n",);*/
 
 return 1;
}

static ssize_t device_write(struct file *filp, const char *buffer, size_t count, loff_t *offset)
{
 //iowrite32(2,g_mkg_mem_base);
 return 1;
}

long device_ioctl(struct file *file, unsigned int ioctl_num, unsigned long ioctl_param)
{
#if 0

   int ret_val = 0;
   unsigned int ret = 0;
   struct reg_data *new_regs;
   printk("ioctl======\n");

   switch(ioctl_num)
   {
      case IOCTL_REG_SET:
   {
   new_regs = (struct reg_data*)kmalloc(sizeof(struct reg_data), GFP_KERNEL);
   if((ret_val = copy_from_user(new_regs, (struct reg_data*)ioctl_param, sizeof(struct reg_data))) != 0)
    {
       kfree(new_regs);
       printk(KERN_ERR " error copy line_datafrom user.\n");
    return -1;
    }

   //iowrite16(new_regs->value,g_mkg_mem_base+new_regs->addr);
   kfree(new_regs);
     }
  break;

 case IOCTL_REG_GET:
 {
  new_regs = (struct reg_data*)kmalloc(sizeof(struct reg_data), GFP_KERNEL);
  if((ret_val = copy_from_user(new_regs, (struct reg_data*)ioctl_param, sizeof(struct reg_data))) != 0)
   {
      kfree(new_regs);
      printk(KERN_ERR " error copy line_datafrom user.\n");
   return -1;
   }

  //ret = ioread16(g_mkg_mem_base+new_regs->addr);
   kfree(new_regs);
  return ret;
 }
 break;
     
   }
#endif

  return -1;
}

struct file_operations our_file_ops = {
  .unlocked_ioctl = device_ioctl,
  .read = device_read,
  .write = device_write,
  .open = device_open,
  .release = device_release,
  .owner = THIS_MODULE,
};

int init_module()
{
 int ret_val;
 int ret;
 void __iomem *ret_from_request;
 int loop = 5;

 //=== Allocate character device
 ret_val = register_chrdev(MAJOR_NUM, DEVICE_NAME, &our_file_ops);
 if (ret_val < 0)
 {
  printk(KERN_ALERT " device %s failed(%d)\n", DEVICE_NAME, ret_val);
  return ret_val;
 }

 ret = check_mem_region(MKG_MEM_BASE, MKG_MEM_LEN);
 if (ret < 0)
 {
  printk(

 << 上一页  [11] [12] [13] [14] 下一页

  • 上一篇文章:

  • 下一篇文章: 没有了
  • 最新文章 热点文章 相关文章
    sharepoint 2010 获取用户信息Us
    设计包含max函数的队列
    随机从数组中取出指定的不重复的
    mysql主从同步延迟方案解决的学习
    青岛科学六年级下册教材分析
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    mysql主从同步延迟方案解决的学习
    生日旅行总结
    中小板生日快乐随感
    送生日快乐桑葚乳酪小蛋糕
    写给女儿的生日快乐
    总分公司财务核算
    恢复使用繁体字可行性研究报告
    保险受益人制度相关问题的探讨
    初中生地理读图能力培养的研究
    搞笑生日祝福
    NLP中文信息处理---正向最大
    中国工作流厂商形成战略联盟
    TIME_WAIT状态下对接收到的数
    The layout of PID & PORT i
    hadoop核心逻辑shuffle代码分
    The layout of PID & PORT i
    The layout of PID & PORT i
    The layout of PID & PORT i
    MapReduce错误任务失败处理 
    Oracle恢复内部原理(介质恢
     



    设为首页 | 加入收藏 | 网站地图 | 友情链接 |