コード例 #1
0
ファイル: stack.c プロジェクト: 020gzh/linux
/* Shutdown the wimax stack */
static
int __init wimax_subsys_init(void)
{
	int result;

	d_fnstart(4, NULL, "()\n");
	d_parse_params(D_LEVEL, D_LEVEL_SIZE, wimax_debug_params,
		       "wimax.debug");

	snprintf(wimax_gnl_family.name, sizeof(wimax_gnl_family.name),
		 "WiMAX");
	result = genl_register_family_with_ops_groups(&wimax_gnl_family,
						      wimax_gnl_ops,
						      wimax_gnl_mcgrps);
	if (unlikely(result < 0)) {
		pr_err("cannot register generic netlink family: %d\n", result);
		goto error_register_family;
	}

	d_fnend(4, NULL, "() = 0\n");
	return 0;

error_register_family:
	d_fnend(4, NULL, "() = %d\n", result);
	return result;

}
コード例 #2
0
ファイル: l2tp_netlink.c プロジェクト: 19Dan01/linux
static int l2tp_nl_init(void)
{
	pr_info("L2TP netlink interface\n");
	return genl_register_family_with_ops_groups(&l2tp_nl_family,
						    l2tp_nl_ops,
						    l2tp_multicast_group);
}
コード例 #3
0
static int register_family(void)
{
	int error;

	log_debug("Registering Generic Netlink family...");

	strcpy(jool_family.name, GNL_JOOL_FAMILY_NAME);

#if LINUX_VERSION_LOWER_THAN(3, 13, 0, 7, 1)

	error = genl_register_family_with_ops(&jool_family, ops, ARRAY_SIZE(ops));
	if (error) {
		log_err("Couldn't register family!");
		return error;
	}

	error = genl_register_mc_group(&jool_family, &(mc_groups[0]));
	if (error) {
		log_err("Couldn't register multicast group!");
		return error;
	}

#else
	error = genl_register_family_with_ops_groups(&jool_family, ops, mc_groups);
	if (error) {
		log_err("Family registration failed: %d", error);
		return error;
	}
#endif

	nlcore_init(&jool_family, &mc_groups[0]);
	return 0;
}
コード例 #4
0
ファイル: kfm_ctl.c プロジェクト: kadoma/fms
static int __init 
kfm_genl_register(void)
{
// kernel 3.10.0-229 centos 7.1
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,1,1)			/* for kanas (kernel 4.1.1) */
	return genl_register_family_with_ops_groups(&kfm_genl_family, 
											kfm_genl_ops,
											kfm_mcgrps);
#else    /* for centos 7.0 (kernel 3.10.0) */
	{
		int ret = 0, i;
		
		ret = genl_register_family_with_ops(&kfm_genl_family,
										kfm_genl_ops,
										ARRAY_SIZE(kfm_genl_ops));
		if (ret) 
			return -1;

		for (i = 0; i < ARRAY_SIZE(kfm_mcgrps); i++) {
			ret = genl_register_mc_group(&kfm_genl_family, &kfm_mcgrps[i]);
			if (ret) {
				genl_unregister_family(&kfm_genl_family);
				return -1;
			}
		}
		
		return 0;	
	}
#endif
}
コード例 #5
0
ファイル: hsr_netlink.c プロジェクト: ParrotSec/linux-psec
int __init hsr_netlink_init(void)
{
    int rc;

    rc = rtnl_link_register(&hsr_link_ops);
    if (rc)
        goto fail_rtnl_link_register;

    rc = genl_register_family_with_ops_groups(&hsr_genl_family, hsr_ops,
            hsr_mcgrps);
    if (rc)
        goto fail_genl_register_family;

    return 0;

fail_genl_register_family:
    rtnl_link_unregister(&hsr_link_ops);
fail_rtnl_link_register:

    return rc;
}
コード例 #6
0
ファイル: netlink.c プロジェクト: 7799/linux
int __init ieee802154_nl_init(void)
{
	return genl_register_family_with_ops_groups(&nl802154_family,
						    ieee8021154_ops,
						    ieee802154_mcgrps);
}