code depository : procfs

#ifdef CONFIG_PROC_FS


214  static void *xxx_clk_start(struct seq_file *seq, loff_t *pos)


215  {


216          if (*pos == 0) {


217                  seq_printf(seq, "NAME/t/tPARENT/t/tRATE(HZ)/tENABLE/tUSAGE/n");


218          }


219  


220          return seq_list_start(&clocks, *pos);


221  }


222  


223  static void *xxxx_clk_next(struct seq_file *seq, void *v, loff_t *pos)


224  {


225          return seq_list_next(v, &clocks, pos);


226  }


227  


228  static void xxxx_clk_stop(struct seq_file *seq, void *v)


229  {


230  }


231  


232  static int xxxx_clk_show(struct seq_file *seq, void *v)


233  {


234          struct clk *clk, *parent;


235  


236          clk = list_entry(v, struct clk, list);


237  


238          seq_printf(seq, "%-16s", clk->name);


239  


240          parent = clk_get_parent(clk);


241          if (parent) {


242                  seq_printf(seq, "%-16s", parent->name);


243          } else {


244                  seq_printf(seq, "%-16s", "NULL");


245          }


246  


247          seq_printf(seq, "%-16ld", clk_get_rate(clk));


248          seq_printf(seq, "%s/t", clk->is_enable(clk) ? "Y" : "N");


249          seq_printf(seq, "%d/n", clk->usage);


250  


251          return 0;


252  }


253  


254  static const struct seq_operations xxxx_clk_ops = {


255          .start = xxxx_clk_start,


256          .next  = xxxx_clk_next,


257          .stop  = xxxx_clk_stop,


258          .show  = xxxx_clk_show,


259  };


260  


261  static int xxxx_clk_open(struct inode *inode, struct file *file)


262  {


263          return seq_open(file, &atxx_clk_ops);


264  }


265  


266  static const struct file_operations xxxx_clk_proc_fops = {


267          .owner         = THIS_MODULE,


268          .open    = xxxx_clk_open,


269          .read    = seq_read,


270          .llseek  = seq_lseek,


271          .release = seq_release,


272  };


273  


274  void xxxx_clock_proc_create(void)


275  {


276          proc_create("clks", 0, NULL, &xxxx_clk_proc_fops);


277  }


278  #else


279  void xxxx_clock_proc_create(void)


280  {


281  }


282  #endif


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值