Whamcloud - gitweb
LU-9680 obdclass: user netlink to collect devices information
[fs/lustre-release.git] / lustre / include / lustre_kernelcomm.h
index 4af88af..b6f5bb6 100644 (file)
 /* For declarations shared with userspace */
 #include <uapi/linux/lustre/lustre_kernelcomm.h>
 
+/**
+ * enum lustre_device_attrs          - Lustre general top-level netlink
+ *                                     attributes that describe lustre
+ *                                     'devices'. These values are used
+ *                                     to piece togther messages for
+ *                                     sending and receiving.
+ *
+ * @LUSTRE_DEVICE_ATTR_UNSPEC:         unspecified attribute to catch errors
+ *
+ * @LUSTRE_DEVICE_ATTR_HDR:            Netlink group this data is for
+ *                                     (NLA_NUL_STRING)
+ * @LUSTRE_DEVICE_ATTR_INDEX:          device number used as an index (NLA_U16)
+ * @LUSTRE_DEVICE_ATTR_STATUS:         status of the device (NLA_STRING)
+ * @LUSTRE_DEVICE_ATTR_CLASS:          class the device belongs to (NLA_STRING)
+ * @LUSTRE_DEVICE_ATTR_NAME:           name of the device (NLA_STRING)
+ * @LUSTRE_DEVICE_ATTR_UUID:           UUID of the device (NLA_STRING)
+ * @LUSTRE_DEVICE_ATTR_REFCOUNT:       refcount of the device (NLA_U32)
+ */
+enum lustre_device_attrs {
+       LUSTRE_DEVICE_ATTR_UNSPEC = 0,
+
+       LUSTRE_DEVICE_ATTR_HDR,
+       LUSTRE_DEVICE_ATTR_INDEX,
+       LUSTRE_DEVICE_ATTR_STATUS,
+       LUSTRE_DEVICE_ATTR_CLASS,
+       LUSTRE_DEVICE_ATTR_NAME,
+       LUSTRE_DEVICE_ATTR_UUID,
+       LUSTRE_DEVICE_ATTR_REFCOUNT,
+
+       __LUSTRE_DEVICE_ATTR_MAX_PLUS_ONE
+};
+
+#define LUSTRE_DEVICE_ATTR_MAX (__LUSTRE_DEVICE_ATTR_MAX_PLUS_ONE - 1)
+
 /* prototype for callback function on kuc groups */
 typedef int (*libcfs_kkuc_cb_t)(void *data, void *cb_arg);
 
 /* Kernel methods */
-void libcfs_kkuc_init(void);
+int libcfs_kkuc_init(void);
+void libcfs_kkuc_fini(void);
 int libcfs_kkuc_msg_put(struct file *fp, void *payload);
 int libcfs_kkuc_group_put(const struct obd_uuid *uuid, int group, void *data);
 int libcfs_kkuc_group_add(struct file *fp, const struct obd_uuid *uuid, int uid,