X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libcfs%2Finclude%2Flibcfs%2Flibcfs_kernelcomm.h;h=0de5cd1003438686d9848c2074d0e5a983d15108;hb=ed2430bd5a8b1b61ce9ae5c4a321598dee728199;hp=f7be4b7140d0c37ad30eb91858a98f0d656a0a85;hpb=2841be335687840cf98961e6c6cde6ee9312e4d7;p=fs%2Flustre-release.git diff --git a/libcfs/include/libcfs/libcfs_kernelcomm.h b/libcfs/include/libcfs/libcfs_kernelcomm.h index f7be4b7..0de5cd1 100644 --- a/libcfs/include/libcfs/libcfs_kernelcomm.h +++ b/libcfs/include/libcfs/libcfs_kernelcomm.h @@ -61,6 +61,8 @@ struct kuc_hdr { __u16 kuc_msglen; /* Including header */ } __attribute__((aligned(sizeof(__u64)))); +#define KUC_CHANGELOG_MSG_MAXSIZE (sizeof(struct kuc_hdr)+CR_MAXSIZE) + #define KUC_MAGIC 0x191C /*Lustre9etLinC */ #define KUC_FL_BLOCK 0x01 /* Wait for send */ @@ -76,7 +78,7 @@ enum kuc_generic_message_type { }; /* prototype for callback function on kuc groups */ -typedef int (*libcfs_kkuc_cb_t)(__u32 data, void *cb_arg); +typedef int (*libcfs_kkuc_cb_t)(void *data, void *cb_arg); /* KUC Broadcast Groups. This determines which userspace process hears which * messages. Mutliple transports may be used within a group, or multiple @@ -91,12 +93,13 @@ typedef int (*libcfs_kkuc_cb_t)(__u32 data, void *cb_arg); extern int libcfs_kkuc_msg_put(struct file *fp, void *payload); extern int libcfs_kkuc_group_put(int group, void *payload); extern int libcfs_kkuc_group_add(struct file *fp, int uid, int group, - __u32 data); -extern int libcfs_kkuc_group_rem(int uid, int group); + void *data); +extern int libcfs_kkuc_group_rem(int uid, int group, void **pdata); extern int libcfs_kkuc_group_foreach(int group, libcfs_kkuc_cb_t cb_func, void *cb_arg); #define LK_FLG_STOP 0x01 +#define LK_NOFD -1U /* kernelcomm control structure, passed from userspace to kernel */ typedef struct lustre_kernelcomm { @@ -109,8 +112,9 @@ typedef struct lustre_kernelcomm { } __attribute__((packed)) lustre_kernelcomm; /* Userspace methods */ -extern int libcfs_ukuc_start(lustre_kernelcomm *l, int groups); +extern int libcfs_ukuc_start(lustre_kernelcomm *l, int groups, int rfd_flags); extern int libcfs_ukuc_stop(lustre_kernelcomm *l); +int libcfs_ukuc_get_rfd(lustre_kernelcomm *link); extern int libcfs_ukuc_msg_get(lustre_kernelcomm *l, char *buf, int maxsize, int transport);