本文整理汇总了C++中register_pernet_subsys函数的典型用法代码示例。如果您正苦于以下问题:C++ register_pernet_subsys函数的具体用法?C++ register_pernet_subsys怎么用?C++ register_pernet_subsys使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了register_pernet_subsys函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的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
示例16: nf_conntrack_proto_dccp_init
static int __init nf_conntrack_proto_dccp_init(void)
{
int ret;
ret = register_pernet_subsys(&dccp_net_ops);
if (ret < 0)
goto out_pernet;
ret = nf_ct_l4proto_register(&dccp_proto4);
if (ret < 0)
goto out_dccp4;
ret = nf_ct_l4proto_register(&dccp_proto6);
if (ret < 0)
goto out_dccp6;
return 0;
out_dccp6:
nf_ct_l4proto_unregister(&dccp_proto4);
out_dccp4:
unregister_pernet_subsys(&dccp_net_ops);
out_pernet:
return ret;
}
开发者ID:19Dan01,项目名称:linux,代码行数:24,代码来源:nf_conntrack_proto_dccp.c
示例17: iptable_mangle_init
static int __init iptable_mangle_init(void)
{
int ret;
mangle_ops = xt_hook_ops_alloc(&packet_mangler, iptable_mangle_hook);
if (IS_ERR(mangle_ops)) {
ret = PTR_ERR(mangle_ops);
return ret;
}
ret = register_pernet_subsys(&iptable_mangle_net_ops);
if (ret < 0) {
kfree(mangle_ops);
return ret;
}
ret = iptable_mangle_table_init(&init_net);
if (ret) {
unregister_pernet_subsys(&iptable_mangle_net_ops);
kfree(mangle_ops);
}
return ret;
}
开发者ID:AlexShiLucky,项目名称:linux,代码行数:24,代码来源:iptable_mangle.c
示例18: nf_conntrack_proto_dccp_init
static int __init nf_conntrack_proto_dccp_init(void)
{
int err;
err = register_pernet_subsys(&dccp_net_ops);
if (err < 0)
goto err1;
err = nf_conntrack_l4proto_register(&dccp_proto4);
if (err < 0)
goto err2;
err = nf_conntrack_l4proto_register(&dccp_proto6);
if (err < 0)
goto err3;
return 0;
err3:
nf_conntrack_l4proto_unregister(&dccp_proto4);
err2:
unregister_pernet_subsys(&dccp_net_ops);
err1:
return err;
}
开发者ID:AbdulrahmanAmir,项目名称:Dorimanx-LG-G2-D802-Kernel,代码行数:24,代码来源:nf_conntrack_proto_dccp.c
示例19: nf_nat_rule_init
int __init nf_nat_rule_init(void)
{
int ret;
ret = register_pernet_subsys(&nf_nat_rule_net_ops);
if (ret != 0)
goto out;
ret = xt_register_target(&ipt_snat_reg);
if (ret != 0)
goto unregister_table;
ret = xt_register_target(&ipt_dnat_reg);
if (ret != 0)
goto unregister_snat;
return ret;
unregister_snat:
xt_unregister_target(&ipt_snat_reg);
unregister_table:
unregister_pernet_subsys(&nf_nat_rule_net_ops);
out:
return ret;
}
开发者ID:xyz1,项目名称:zte-turies-35,代码行数:24,代码来源:nf_nat_rule.c
示例20: vnsw_init
static int __init vnsw_init(void)
{
int err;
err = lacp_proto_register(&vnsw_lacp_proto);
if (err < 0) {
pr_err("vnsw: can't register sap for LACP\n");
return err;
}
/**
* More proto register should come here
*/
err = vnsw_mtrie_init();
if (err)
goto err_out;
err = register_pernet_subsys(&vnsw_net_ops);
if (err)
goto err_out1;
err = vnsw_policy_init();
if (err)
goto err_out2;
err = vnsw_if_init();
if (err)
goto err_out3;
err = register_netdevice_notifier(&vnsw_device_notifier);
if (err)
goto err_out4;
/**
* Should this move to linux directory
*/
err = vnsw_netlink_init();
if (err)
goto err_out5;
/**
* Should this move to linux directory
*/
brioctl_set(vnsw_ioctl_deviceless_stub);
/**
* Should this move to linux directory linux module init
*/
br_handle_frame_hook = vnsw_handle_frame;
return 0;
err_out5:
unregister_netdevice_notifier(&vnsw_device_notifier);
err_out4:
vnsw_if_fini();
err_out3:
vnsw_policy_fini();
err_out2:
unregister_pernet_subsys(&vnsw_net_ops);
err_out1:
vnsw_mtrie_fini();
err_out:
lacp_proto_unregister(&vnsw_lacp_proto);
return err;
}
开发者ID:ashoksr,项目名称:contrail-vrouter,代码行数:65,代码来源:vnsw_dp.c
注:本文中的register_pernet_subsys函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论