1e8372d9dSGuvenc Gulce /* SPDX-License-Identifier: GPL-2.0 */ 2e8372d9dSGuvenc Gulce /* 3e8372d9dSGuvenc Gulce * Shared Memory Communications over RDMA (SMC-R) and RoCE 4e8372d9dSGuvenc Gulce * 5e8372d9dSGuvenc Gulce * SMC Generic netlink operations 6e8372d9dSGuvenc Gulce * 7e8372d9dSGuvenc Gulce * Copyright IBM Corp. 2020 8e8372d9dSGuvenc Gulce * 9e8372d9dSGuvenc Gulce * Author(s): Guvenc Gulce <guvenc@linux.ibm.com> 10e8372d9dSGuvenc Gulce */ 11e8372d9dSGuvenc Gulce 12e8372d9dSGuvenc Gulce #ifndef _SMC_NETLINK_H 13e8372d9dSGuvenc Gulce #define _SMC_NETLINK_H 14e8372d9dSGuvenc Gulce 15e8372d9dSGuvenc Gulce #include <net/netlink.h> 16e8372d9dSGuvenc Gulce #include <net/genetlink.h> 17e8372d9dSGuvenc Gulce 18e8372d9dSGuvenc Gulce extern struct genl_family smc_gen_nl_family; 19e8372d9dSGuvenc Gulce 20*fa086662SKarsten Graul extern const struct nla_policy smc_gen_ueid_policy[]; 21*fa086662SKarsten Graul 22099b990bSGuvenc Gulce struct smc_nl_dmp_ctx { 23f0dd7bf5SGuvenc Gulce int pos[3]; 24099b990bSGuvenc Gulce }; 25099b990bSGuvenc Gulce smc_nl_dmp_ctx(struct netlink_callback * c)26099b990bSGuvenc Gulcestatic inline struct smc_nl_dmp_ctx *smc_nl_dmp_ctx(struct netlink_callback *c) 27099b990bSGuvenc Gulce { 28099b990bSGuvenc Gulce return (struct smc_nl_dmp_ctx *)c->ctx; 29099b990bSGuvenc Gulce } 30099b990bSGuvenc Gulce 31e8372d9dSGuvenc Gulce int smc_nl_init(void) __init; 32e8372d9dSGuvenc Gulce void smc_nl_exit(void); 33e8372d9dSGuvenc Gulce 34e8372d9dSGuvenc Gulce #endif 35