| #ifndef DRBD_GENL_STRUCT_H |
| #define DRBD_GENL_STRUCT_H |
| |
| /** |
| * struct drbd_genlmsghdr - DRBD specific header used in NETLINK_GENERIC requests |
| * @minor: |
| * For admin requests (user -> kernel): which minor device to operate on. |
| * For (unicast) replies or informational (broadcast) messages |
| * (kernel -> user): which minor device the information is about. |
| * If we do not operate on minors, but on connections or resources, |
| * the minor value shall be (~0), and the attribute DRBD_NLA_CFG_CONTEXT |
| * is used instead. |
| * @flags: possible operation modifiers (relevant only for user->kernel): |
| * DRBD_GENL_F_SET_DEFAULTS |
| * @volume: |
| * When creating a new minor (adding it to a resource), the resource needs |
| * to know which volume number within the resource this is supposed to be. |
| * The volume number corresponds to the same volume number on the remote side, |
| * whereas the minor number on the remote side may be different |
| * (union with flags). |
| * @ret_code: kernel->userland unicast cfg reply return code (union with flags); |
| */ |
| struct drbd_genlmsghdr { |
| __u32 minor; |
| union { |
| __u32 flags; |
| __s32 ret_code; |
| }; |
| }; |
| |
| /* To be used in drbd_genlmsghdr.flags */ |
| enum { |
| DRBD_GENL_F_SET_DEFAULTS = 1, |
| }; |
| |
| enum drbd_state_info_bcast_reason { |
| SIB_GET_STATUS_REPLY = 1, |
| SIB_STATE_CHANGE = 2, |
| SIB_HELPER_PRE = 3, |
| SIB_HELPER_POST = 4, |
| SIB_SYNC_PROGRESS = 5, |
| }; |
| |
| /* hack around predefined gcc/cpp "linux=1", |
| * we cannot possibly include <1/drbd_genl.h> */ |
| #undef linux |
| |
| #include <linux/drbd.h> |
| #define GENL_MAGIC_VERSION API_VERSION |
| #define GENL_MAGIC_FAMILY drbd |
| #define GENL_MAGIC_FAMILY_HDRSZ sizeof(struct drbd_genlmsghdr) |
| #define GENL_MAGIC_INCLUDE_FILE <linux/drbd_genl.h> |
| #include <linux/genl_magic_struct.h> |
| |
| #endif |