Exemplo n.º 1
0
static __net_init int raw_init_net(struct net *net)
{
	if (!proc_net_fops_create(net, "raw", S_IRUGO, &raw_seq_fops))
		return -ENOMEM;

	return 0;
}
Exemplo n.º 2
0
int __init wireless_proc_init(void)
{
	if (!proc_net_fops_create("wireless", S_IRUGO, &wireless_seq_fops))
		return -ENOMEM;

	return 0;
}
Exemplo n.º 3
0
int __net_init xfrm_proc_init(struct net *net)
{
	if (!proc_net_fops_create(net, "xfrm_stat", S_IRUGO,
				  &xfrm_statistics_seq_fops))
		return -ENOMEM;
	return 0;
}
Exemplo n.º 4
0
static int __net_init ip6_flowlabel_proc_init(struct net *net)
{
	if (!proc_net_fops_create(net, "ip6_flowlabel",
				  S_IRUGO, &ip6fl_seq_fops))
		return -ENOMEM;
	return 0;
}
Exemplo n.º 5
0
static __init int dccpprobe_init(void)
{
    int ret = -ENOMEM;

    init_waitqueue_head(&dccpw.wait);
    spin_lock_init(&dccpw.lock);
    dccpw.fifo = kfifo_alloc(bufsize, GFP_KERNEL, &dccpw.lock);
    if (IS_ERR(dccpw.fifo))
        return PTR_ERR(dccpw.fifo);

    if (!proc_net_fops_create(procname, S_IRUSR, &dccpprobe_fops))
        goto err0;

    ret = register_jprobe(&dccp_send_probe);
    if (ret)
        goto err1;

    pr_info("DCCP watch registered (port=%d)\n", port);
    return 0;
err1:
    proc_net_remove(procname);
err0:
    kfifo_free(dccpw.fifo);
    return ret;
}
Exemplo n.º 6
0
static int ipv6_proc_init_net(struct net *net)
{
	if (!proc_net_fops_create(net, "sockstat6", S_IRUGO,
			&sockstat6_seq_fops))
		return -ENOMEM;
	return 0;
}
Exemplo n.º 7
0
int __net_init wext_proc_init(struct net *net)
{
	
	if (!proc_net_fops_create(net, "wireless", S_IRUGO, &wireless_seq_fops))
		return -ENOMEM;

	return 0;
}
Exemplo n.º 8
0
int wext_proc_init(struct net *net)
{
	/* Create /proc/net/wireless entry */
	if (!proc_net_fops_create(net, "wireless", S_IRUGO, &wireless_seq_fops))
		return -ENOMEM;

	return 0;
}
Exemplo n.º 9
0
int __init wireless_proc_init(void)
{
	/* Create /proc/net/wireless entry */
	if (!proc_net_fops_create("wireless", S_IRUGO, &wireless_seq_fops))
		return -ENOMEM;

	return 0;
}
Exemplo n.º 10
0
static __net_init int ip_proc_init_net(struct net *net)
{
	if (!proc_net_fops_create(net, "sockstat", S_IRUGO, &sockstat_seq_fops))
		goto out_sockstat;
	if (!proc_net_fops_create(net, "netstat", S_IRUGO, &netstat_seq_fops))
		goto out_netstat;
	if (!proc_net_fops_create(net, "snmp", S_IRUGO, &snmp_seq_fops))
		goto out_snmp;

	return 0;

out_snmp:
	proc_net_remove(net, "netstat");
out_netstat:
	proc_net_remove(net, "sockstat");
out_sockstat:
	return -ENOMEM;
}
Exemplo n.º 11
0
static int ipv6_proc_init_net(struct net *net)
{
	if (!proc_net_fops_create(net, "sockstat6", S_IRUGO,
			&sockstat6_seq_fops))
		return -ENOMEM;

	if (!proc_net_fops_create(net, "snmp6", S_IRUGO, &snmp6_seq_fops))
		goto proc_snmp6_fail;

	net->mib.proc_net_devsnmp6 = proc_mkdir("dev_snmp6", net->proc_net);
	if (!net->mib.proc_net_devsnmp6)
		goto proc_dev_snmp6_fail;
	return 0;

proc_snmp6_fail:
	proc_net_remove(net, "sockstat6");
proc_dev_snmp6_fail:
	proc_net_remove(net, "dev_snmp6");
	return -ENOMEM;
}
Exemplo n.º 12
0
int __init ip_misc_proc_init(void)
{
	int rc = 0;

	if (!proc_net_fops_create("netstat", S_IRUGO, &netstat_seq_fops))
		goto out_netstat;

	if (!proc_net_fops_create("snmp", S_IRUGO, &snmp_seq_fops))
		goto out_snmp;

	if (!proc_net_fops_create("sockstat", S_IRUGO, &sockstat_seq_fops))
		goto out_sockstat;
out:
	return rc;
out_sockstat:
	proc_net_remove("snmp");
out_snmp:
	proc_net_remove("netstat");
out_netstat:
	rc = -ENOMEM;
	goto out;
}
Exemplo n.º 13
0
Arquivo: proc.c Projeto: 274914765/C
int __init ip_misc_proc_init(void)
{
    int rc = 0;

    if (register_pernet_subsys(&ip_proc_ops))
        goto out_pernet;

    if (!proc_net_fops_create(&init_net, "netstat", S_IRUGO, &netstat_seq_fops))
        goto out_netstat;

    if (!proc_net_fops_create(&init_net, "snmp", S_IRUGO, &snmp_seq_fops))
        goto out_snmp;
out:
    return rc;
out_snmp:
    proc_net_remove(&init_net, "netstat");
out_netstat:
    unregister_pernet_subsys(&ip_proc_ops);
out_pernet:
    rc = -ENOMEM;
    goto out;
}
Exemplo n.º 14
0
int cs_ni_init_proc(void)
{
	struct proc_dir_entry *proc_ni=NULL, *proc_qm=NULL, *proc_dma=NULL, 
			*proc_mdio=NULL, *proc_sch=NULL;
	
	struct proc_dir_entry *proc_fe=NULL;

	struct proc_dir_entry *proc_tm=NULL;

#ifdef CONFIG_SYSCTL
	// ne_ct_sysctl_header = NULL;
#endif
	proc_ni = proc_net_fops_create(&init_net, CS752x_NI_PROC_NAME, S_IRUGO, &ni_file_ops);
	if (!proc_ni) goto init_bad;
	proc_sch = proc_net_fops_create(&init_net, CS752x_SCH_PROC_NAME, S_IRUGO, &sch_file_ops);
	if (!proc_sch) goto init_bad;
	proc_dma = proc_net_fops_create(&init_net, CS752x_DMA_PROC_NAME, S_IRUGO, &dma_file_ops);
	if (!proc_dma) goto init_bad;			
	proc_mdio = proc_net_fops_create(&init_net, CS752x_MDIO_PROC_NAME, S_IRUGO, &mdio_file_ops);
	if (!proc_mdio) goto init_bad;
	proc_qm = proc_net_fops_create(&init_net, CS752x_QM_PROC_NAME, S_IRUGO, &qm_file_ops);
	if (!proc_qm) goto init_bad;	
	proc_fe = proc_net_fops_create(&init_net, CS752x_FE_PROC_NAME, S_IRUGO, &fe_file_ops);
	if (!proc_fe) goto init_bad;

	proc_tm = proc_net_fops_create(&init_net, CS752x_TM_PROC_NAME, S_IRUGO, &tm_file_ops);
	if (!proc_tm) goto init_bad;

#ifdef CONFIG_SYSCTL
	// ne_ct_sysctl_header = register_sysctl_table(fe_ct_net_table, 0);
	// if (!ne_ct_sysctl_header) goto init_bad;
#endif
	
	
	return 0;
	
init_bad:
	if (proc_ni) proc_net_remove(&init_net, CS752x_NI_PROC_NAME);
	if (proc_ni) proc_net_remove(&init_net, CS752x_QM_PROC_NAME);
	if (proc_ni) proc_net_remove(&init_net, CS752x_SCH_PROC_NAME);
	if (proc_ni) proc_net_remove(&init_net, CS752x_DMA_PROC_NAME);		
	if (proc_ni) proc_net_remove(&init_net, CS752x_MDIO_PROC_NAME);
	if (proc_ni) proc_net_remove(&init_net, CS752x_FE_PROC_NAME);	
	if (proc_tm) proc_net_remove(&init_net, CS752x_TM_PROC_NAME);

#ifdef CONFIG_SYSCTL
	// if (ne_ct_sysctl_header) unregister_sysctl_table(ne_ct_sysctl_header);
#endif
	proc_printf("CS752x NE Proc: can't create proc or register sysctl.\n");
	return -ENOMEM;
}
Exemplo n.º 15
0
int __init ipv6_misc_proc_init(void)
{
	int rc = 0;

	if (!proc_net_fops_create(&init_net, "snmp6", S_IRUGO, &snmp6_seq_fops))
		goto proc_snmp6_fail;

	proc_net_devsnmp6 = proc_mkdir("dev_snmp6", init_net.proc_net);
	if (!proc_net_devsnmp6)
		goto proc_dev_snmp6_fail;

	if (!proc_net_fops_create(&init_net, "sockstat6", S_IRUGO, &sockstat6_seq_fops))
		goto proc_sockstat6_fail;
out:
	return rc;

proc_sockstat6_fail:
	proc_net_remove(&init_net, "dev_snmp6");
proc_dev_snmp6_fail:
	proc_net_remove(&init_net, "snmp6");
proc_snmp6_fail:
	rc = -ENOMEM;
	goto out;
}
Exemplo n.º 16
0
Arquivo: yam.c Projeto: ivucica/linux
static int __init yam_init_driver(void)
{
	struct net_device *dev;
	int i, err;
	char name[IFNAMSIZ];

	printk(yam_drvinfo);

	for (i = 0; i < NR_PORTS; i++) {
		sprintf(name, "yam%d", i);
		
		dev = alloc_netdev(sizeof(struct yam_port), name,
				   yam_setup);
		if (!dev) {
			printk(KERN_ERR "yam: cannot allocate net device %s\n",
			       dev->name);
			err = -ENOMEM;
			goto error;
		}
		
		err = register_netdev(dev);
		if (err) {
			printk(KERN_WARNING "yam: cannot register net device %s\n", dev->name);
			goto error;
		}
		yam_devs[i] = dev;

	}

	yam_timer.function = yam_dotimer;
	yam_timer.expires = jiffies + HZ / 100;
	add_timer(&yam_timer);

	proc_net_fops_create("yam", S_IRUGO, &yam_info_fops);
	return 0;
 error:
	while (--i >= 0) {
		unregister_netdev(yam_devs[i]);
		free_netdev(yam_devs[i]);
	}
	return err;
}
Exemplo n.º 17
0
int __init raw_proc_init(void)
{
	if (!proc_net_fops_create("raw", S_IRUGO, &raw_seq_fops))
		return -ENOMEM;
	return 0;
}
Exemplo n.º 18
0
static int dev_mc_net_init(struct vrf *vrf)
{
	if (!proc_net_fops_create(vrf, "dev_mcast", 0, &dev_mc_seq_fops))
		return -ENOMEM;
	return 0;
}
Exemplo n.º 19
0
void __init dev_mcast_init(void)
{
	proc_net_fops_create("dev_mcast", 0, &dev_mc_seq_fops);
}
Exemplo n.º 20
0
void ip6_flowlabel_init(void)
{
#ifdef CONFIG_PROC_FS
	proc_net_fops_create("ip6_flowlabel", S_IRUGO, &ip6fl_seq_fops);
#endif
}
Exemplo n.º 21
0
static int __net_init dev_mc_net_init(struct net *net)
{
	if (!proc_net_fops_create(net, "dev_mcast", 0, &dev_mc_seq_fops))
		return -ENOMEM;
	return 0;
}
Exemplo n.º 22
0
static int init_or_cleanup(int init)
{
#ifdef CONFIG_PROC_FS
	struct proc_dir_entry *proc, *proc_exp, *proc_stat;
#endif
	int ret = 0;

	if (!init) goto cleanup;

	ret = ip_conntrack_init();
	if (ret < 0)
		goto cleanup_nothing;

#ifdef CONFIG_PROC_FS
	proc = proc_net_fops_create("ip_conntrack", 0440, &ct_file_ops);
	if (!proc) goto cleanup_init;

	proc_exp = proc_net_fops_create("ip_conntrack_expect", 0440,
					&exp_file_ops);
	if (!proc_exp) goto cleanup_proc;

	proc_stat = create_proc_entry("ip_conntrack", S_IRUGO, proc_net_stat);
	if (!proc_stat)
		goto cleanup_proc_exp;

	proc_stat->proc_fops = &ct_cpu_seq_fops;
	proc_stat->owner = THIS_MODULE;
#endif

	ret = nf_register_hook(&ip_conntrack_defrag_ops);
	if (ret < 0) {
		printk("ip_conntrack: can't register pre-routing defrag hook.\n");
		goto cleanup_proc_stat;
	}
	ret = nf_register_hook(&ip_conntrack_defrag_local_out_ops);
	if (ret < 0) {
		printk("ip_conntrack: can't register local_out defrag hook.\n");
		goto cleanup_defragops;
	}
	ret = nf_register_hook(&ip_conntrack_in_ops);
	if (ret < 0) {
		printk("ip_conntrack: can't register pre-routing hook.\n");
		goto cleanup_defraglocalops;
	}
	ret = nf_register_hook(&ip_conntrack_local_out_ops);
	if (ret < 0) {
		printk("ip_conntrack: can't register local out hook.\n");
		goto cleanup_inops;
	}
	ret = nf_register_hook(&ip_conntrack_out_ops);
	if (ret < 0) {
		printk("ip_conntrack: can't register post-routing hook.\n");
		goto cleanup_inandlocalops;
	}
	ret = nf_register_hook(&ip_conntrack_local_in_ops);
	if (ret < 0) {
		printk("ip_conntrack: can't register local in hook.\n");
		goto cleanup_inoutandlocalops;
	}
#ifdef CONFIG_SYSCTL
	ip_ct_sysctl_header = register_sysctl_table(ip_ct_net_table, 0);
	if (ip_ct_sysctl_header == NULL) {
		printk("ip_conntrack: can't register to sysctl.\n");
		goto cleanup;
	}
#endif

	return ret;

 cleanup:
#ifdef CONFIG_SYSCTL
 	unregister_sysctl_table(ip_ct_sysctl_header);
#endif
	nf_unregister_hook(&ip_conntrack_local_in_ops);
 cleanup_inoutandlocalops:
	nf_unregister_hook(&ip_conntrack_out_ops);
 cleanup_inandlocalops:
	nf_unregister_hook(&ip_conntrack_local_out_ops);
 cleanup_inops:
	nf_unregister_hook(&ip_conntrack_in_ops);
 cleanup_defraglocalops:
	nf_unregister_hook(&ip_conntrack_defrag_local_out_ops);
 cleanup_defragops:
	nf_unregister_hook(&ip_conntrack_defrag_ops);
 cleanup_proc_stat:
#ifdef CONFIG_PROC_FS
	remove_proc_entry("ip_conntrack", proc_net_stat);
 cleanup_proc_exp:
	proc_net_remove("ip_conntrack_expect");
 cleanup_proc:
	proc_net_remove("ip_conntrack");
 cleanup_init:
#endif /* CONFIG_PROC_FS */
	ip_conntrack_cleanup();
 cleanup_nothing:
	return ret;
}