当前位置: 首页>>代码示例>>C++>>正文


C++ register_pernet_subsys函数代码示例

本文整理汇总了C++中register_pernet_subsys函数的典型用法代码示例。如果您正苦于以下问题:C++ register_pernet_subsys函数的具体用法?C++ register_pernet_subsys怎么用?C++ register_pernet_subsys使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了register_pernet_subsys函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: ip6table_mangle_init

static int __init ip6table_mangle_init(void)
{
	int ret;

	ret = register_pernet_subsys(&ip6table_mangle_net_ops);
	if (ret < 0)
		return ret;

	/* Register hooks */
	mangle_ops = xt_hook_link(&packet_mangler, ip6table_mangle_hook);
	if (IS_ERR(mangle_ops)) {
		ret = PTR_ERR(mangle_ops);
		goto cleanup_table;
	}

	return ret;

 cleanup_table:
	unregister_pernet_subsys(&ip6table_mangle_net_ops);
	return ret;
}
开发者ID:AD5GB,项目名称:kernel_n5_3.10-experimental,代码行数:21,代码来源:ip6table_mangle.c

示例2: iptable_raw_init

static int __init iptable_raw_init(void)
{
	int ret;

	ret = register_pernet_subsys(&iptable_raw_net_ops);
	if (ret < 0)
		return ret;

	
	rawtable_ops = xt_hook_link(&packet_raw, iptable_raw_hook);
	if (IS_ERR(rawtable_ops)) {
		ret = PTR_ERR(rawtable_ops);
		goto cleanup_table;
	}

	return ret;

 cleanup_table:
	unregister_pernet_subsys(&iptable_raw_net_ops);
	return ret;
}
开发者ID:Albinoman887,项目名称:pyramid-3.4.10,代码行数:21,代码来源:iptable_raw.c

示例3: vlan_proto_init

static int __init vlan_proto_init(void)
{
	int err;

	pr_info("%s v%s\n", vlan_fullname, vlan_version);

	err = register_pernet_subsys(&vlan_net_ops);
	if (err < 0)
		goto err0;

	err = register_netdevice_notifier(&vlan_notifier_block);
	if (err < 0)
		goto err2;

	err = vlan_gvrp_init();
	if (err < 0)
		goto err3;

	err = vlan_mvrp_init();
	if (err < 0)
		goto err4;

	err = vlan_netlink_init();
	if (err < 0)
		goto err5;

	vlan_ioctl_set(vlan_ioctl_handler);
	return 0;

err5:
	vlan_mvrp_uninit();
err4:
	vlan_gvrp_uninit();
err3:
	unregister_netdevice_notifier(&vlan_notifier_block);
err2:
	unregister_pernet_subsys(&vlan_net_ops);
err0:
	return err;
}
开发者ID:CoerWatt,项目名称:linux,代码行数:40,代码来源:vlan.c

示例4: ip_misc_proc_init

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;
}
开发者ID:274914765,项目名称:C,代码行数:22,代码来源:proc.c

示例5: deth_init

static __init int deth_init(void)
{
    int rc;

    printk(KERN_DEBUG "[Module %s %s loaded]\n", DRV_NAME, DRV_VERSION);

    rc = register_pernet_subsys(&deth_net_ops);

    if (rc != 0)
    {
        return rc;
    }

    rc = rtnl_link_register(&deth_link_ops);

    if (rc != 0)
    {
        unregister_pernet_subsys(&deth_net_ops);
    }

    return rc;
}
开发者ID:carriercomm,项目名称:dropgit,代码行数:22,代码来源:deth.c

示例6: vrf_init_module

static int __init vrf_init_module(void)
{
	int rc;

	register_netdevice_notifier(&vrf_notifier_block);

	rc = register_pernet_subsys(&vrf_net_ops);
	if (rc < 0)
		goto error;

	rc = rtnl_link_register(&vrf_link_ops);
	if (rc < 0) {
		unregister_pernet_subsys(&vrf_net_ops);
		goto error;
	}

	return 0;

error:
	unregister_netdevice_notifier(&vrf_notifier_block);
	return rc;
}
开发者ID:ReneNyffenegger,项目名称:linux,代码行数:22,代码来源:vrf.c

示例7: init_nlm

static int __init init_nlm(void)
{
	int err;

#ifdef CONFIG_SYSCTL
	err = -ENOMEM;
	nlm_sysctl_table = register_sysctl_table(nlm_sysctl_root);
	if (nlm_sysctl_table == NULL)
		goto err_sysctl;
#endif
	err = register_pernet_subsys(&lockd_net_ops);
	if (err)
		goto err_pernet;
	return 0;

err_pernet:
#ifdef CONFIG_SYSCTL
	unregister_sysctl_table(nlm_sysctl_table);
#endif
err_sysctl:
	return err;
}
开发者ID:sagark,项目名称:linux-pf-profile,代码行数:22,代码来源:svc.c

示例8: iptable_security_init

static int __init iptable_security_init(void)
{
	int ret;

	sectbl_ops = xt_hook_ops_alloc(&security_table, iptable_security_hook);
	if (IS_ERR(sectbl_ops))
		return PTR_ERR(sectbl_ops);

	ret = register_pernet_subsys(&iptable_security_net_ops);
	if (ret < 0) {
		kfree(sectbl_ops);
		return ret;
	}

	ret = iptable_security_table_init(&init_net);
	if (ret) {
		unregister_pernet_subsys(&iptable_security_net_ops);
		kfree(sectbl_ops);
	}

	return ret;
}
开发者ID:020gzh,项目名称:linux,代码行数:22,代码来源:iptable_security.c

示例9: nf_nat_init

static int __init nf_nat_init(void)
{
	int ret;

	ret = rhashtable_init(&nf_nat_bysource_table, &nf_nat_bysource_params);
	if (ret)
		return ret;

	ret = nf_ct_extend_register(&nat_extend);
	if (ret < 0) {
		rhashtable_destroy(&nf_nat_bysource_table);
		printk(KERN_ERR "nf_nat_core: Unable to register extension\n");
		return ret;
	}

	ret = register_pernet_subsys(&nf_nat_net_ops);
	if (ret < 0)
		goto cleanup_extend;

	nf_ct_helper_expectfn_register(&follow_master_nat);

	/* Initialize fake conntrack so that NAT will skip it */
	nf_ct_untracked_status_or(IPS_NAT_DONE_MASK);

	BUG_ON(nfnetlink_parse_nat_setup_hook != NULL);
	RCU_INIT_POINTER(nfnetlink_parse_nat_setup_hook,
			   nfnetlink_parse_nat_setup);
#ifdef CONFIG_XFRM
	BUG_ON(nf_nat_decode_session_hook != NULL);
	RCU_INIT_POINTER(nf_nat_decode_session_hook, __nf_nat_decode_session);
#endif
	return 0;

 cleanup_extend:
	rhashtable_destroy(&nf_nat_bysource_table);
	nf_ct_extend_unregister(&nat_extend);
	return ret;
}
开发者ID:acton393,项目名称:linux,代码行数:38,代码来源:nf_nat_core.c

示例10: log_tg_init

static int __init log_tg_init(void)
{
	int ret;

	ret = register_pernet_subsys(&log_net_ops);
	if (ret < 0)
		goto err_pernet;

	ret = xt_register_targets(log_tg_regs, ARRAY_SIZE(log_tg_regs));
	if (ret < 0)
		goto err_target;

	nf_log_register(NFPROTO_IPV4, &ipt_log_logger);
#if IS_ENABLED(CONFIG_IP6_NF_IPTABLES)
	nf_log_register(NFPROTO_IPV6, &ip6t_log_logger);
#endif
	return 0;

err_target:
	unregister_pernet_subsys(&log_net_ops);
err_pernet:
	return ret;
}
开发者ID:realmz,项目名称:blackfin-linux,代码行数:23,代码来源:xt_LOG.c

示例11: ipv6_frag_init

int __init ipv6_frag_init(void)
{
	int ret;

	ip6_frags.constructor = ip6frag_init;
	ip6_frags.destructor = NULL;
	ip6_frags.qsize = sizeof(struct frag_queue);
	ip6_frags.frag_expire = ip6_frag_expire;
	ip6_frags.frags_cache_name = ip6_frag_cache_name;
	ip6_frags.rhash_params = ip6_rhash_params;
	ret = inet_frags_init(&ip6_frags);
	if (ret)
		goto out;

	ret = inet6_add_protocol(&frag_protocol, IPPROTO_FRAGMENT);
	if (ret)
		goto err_protocol;

	ret = ip6_frags_sysctl_register();
	if (ret)
		goto err_sysctl;

	ret = register_pernet_subsys(&ip6_frags_ops);
	if (ret)
		goto err_pernet;

out:
	return ret;

err_pernet:
	ip6_frags_sysctl_unregister();
err_sysctl:
	inet6_del_protocol(&frag_protocol, IPPROTO_FRAGMENT);
err_protocol:
	inet_frags_fini(&ip6_frags);
	goto out;
}
开发者ID:Anjali05,项目名称:linux,代码行数:37,代码来源:reassembly.c

示例12: init_sunrpc

static int __init
init_sunrpc(void)
{
	int err = rpc_init_mempool();
	if (err)
		goto out;
	err = rpcauth_init_module();
	if (err)
		goto out2;

	cache_initialize();

	err = register_pernet_subsys(&sunrpc_net_ops);
	if (err)
		goto out3;

	err = register_rpc_pipefs();
	if (err)
		goto out4;

	sunrpc_debugfs_init();
#if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
	rpc_register_sysctl();
#endif
	svc_init_xprt_sock();	/* svc sock transport */
	init_socket_xprt();	/* clnt sock transport */
	return 0;

out4:
	unregister_pernet_subsys(&sunrpc_net_ops);
out3:
	rpcauth_remove_module();
out2:
	rpc_destroy_mempool();
out:
	return err;
}
开发者ID:020gzh,项目名称:linux,代码行数:37,代码来源:sunrpc_syms.c

示例13: ipv6_misc_proc_init

int __init ipv6_misc_proc_init(void)
{
	int rc = 0;

	if (register_pernet_subsys(&ipv6_proc_ops))
		goto proc_net_fail;

	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;
out:
	return rc;

proc_dev_snmp6_fail:
	proc_net_remove(&init_net, "snmp6");
proc_snmp6_fail:
	unregister_pernet_subsys(&ipv6_proc_ops);
proc_net_fail:
	rc = -ENOMEM;
	goto out;
}
开发者ID:LouZiffer,项目名称:m900_kernel_cupcake-SDX,代码行数:24,代码来源:proc.c

示例14: xfrm6_init

int __init xfrm6_init(void)
{
	int ret;

	dst_entries_init(&xfrm6_dst_ops);

	ret = xfrm6_policy_init();
	if (ret) {
		dst_entries_destroy(&xfrm6_dst_ops);
		goto out;
	}
	ret = xfrm6_state_init();
	if (ret)
		goto out_policy;

#ifdef CONFIG_SYSCTL
	register_pernet_subsys(&xfrm6_net_ops);
#endif
out:
	return ret;
out_policy:
	xfrm6_policy_fini();
	goto out;
}
开发者ID:OliverGesch,项目名称:linux,代码行数:24,代码来源:xfrm6_policy.c

示例15: vlan_proto_init

static int __init vlan_proto_init(void)
{
	int err;

	pr_info("%s v%s %s\n", vlan_fullname, vlan_version, vlan_copyright);
	pr_info("All bugs added by %s\n", vlan_buggyright);

	err = register_pernet_subsys(&vlan_net_ops);
	if (err < 0)
		goto err0;

	err = register_netdevice_notifier(&vlan_notifier_block);
	if (err < 0)
		goto err2;

	err = vlan_gvrp_init();
	if (err < 0)
		goto err3;

	err = vlan_netlink_init();
	if (err < 0)
		goto err4;

	dev_add_pack(&vlan_packet_type);
	vlan_ioctl_set(vlan_ioctl_handler);
	return 0;

err4:
	vlan_gvrp_uninit();
err3:
	unregister_netdevice_notifier(&vlan_notifier_block);
err2:
	unregister_pernet_subsys(&vlan_net_ops);
err0:
	return err;
}
开发者ID:Adjustxx,项目名称:Savaged-Zen,代码行数:36,代码来源:vlan.c


注:本文中的register_pernet_subsys函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。