Whamcloud - gitweb
b=20334 fix conflicting ioctl numbers
[fs/lustre-release.git] / lustre / include / lustre_lib.h
index 21cb37d..37cf991 100644 (file)
@@ -26,7 +26,7 @@
  * GPL HEADER END
  */
 /*
- * Copyright  2008 Sun Microsystems, Inc. All rights reserved
+ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  */
 /*
 #ifndef _LUSTRE_LIB_H
 #define _LUSTRE_LIB_H
 
+/** \defgroup lib lib
+ *
+ * @{
+ */
+
 #include <libcfs/libcfs.h>
 #include <lustre/lustre_idl.h>
 #include <lustre_ver.h>
 #error Unsupported operating system.
 #endif
 
-/* prng.c */
-unsigned int ll_rand(void);        /* returns a random 32-bit integer */
-void ll_srand(unsigned int, unsigned int);     /* seed the generator */
-void ll_get_random_bytes(void *buf, int size);
-
 /* target.c */
 struct ptlrpc_request;
 struct obd_export;
@@ -76,10 +76,11 @@ void target_destroy_export(struct obd_export *exp);
 int target_pack_pool_reply(struct ptlrpc_request *req);
 int target_handle_ping(struct ptlrpc_request *req);
 void target_committed_to_req(struct ptlrpc_request *req);
-int target_set_info_rpc(struct obd_import *imp, int opcode,
-                        obd_count keylen, void *key,
-                        obd_count vallen, void *val,
-                        struct ptlrpc_request_set *set);
+int do_set_info_async(struct obd_import *imp,
+                      int opcode, int version,
+                      obd_count keylen, void *key,
+                      obd_count vallen, void *val,
+                      struct ptlrpc_request_set *set);
 
 /* quotacheck callback, dqacq/dqrel callback handler */
 int target_handle_qc_callback(struct ptlrpc_request *req);
@@ -485,22 +486,21 @@ static inline void obd_ioctl_freedata(char *buf, int len)
 
 #define OBD_IOC_CLOSE_UUID             _IOWR ('f', 147, OBD_IOC_DATA_TYPE)
 
+#define OBD_IOC_CHANGELOG_SEND         _IOW ('f', 148, OBD_IOC_DATA_TYPE)
 #define OBD_IOC_GETDEVICE              _IOWR ('f', 149, OBD_IOC_DATA_TYPE)
 #define OBD_IOC_FID2PATH               _IOWR ('f', 150, OBD_IOC_DATA_TYPE)
-#define OBD_IOC_CHANGELOG_REG          _IOW ('f', 151, OBD_IOC_DATA_TYPE)
-#define OBD_IOC_CHANGELOG_DEREG        _IOW ('f', 152, OBD_IOC_DATA_TYPE)
-#define OBD_IOC_CHANGELOG_CLEAR        _IOW ('f', 153, OBD_IOC_DATA_TYPE)
-
+/* see <lustre/lustre_user.h> for ioctls 151-153 */
 #define OBD_IOC_LOV_SETSTRIPE          _IOW ('f', 154, OBD_IOC_DATA_TYPE)
 #define OBD_IOC_LOV_GETSTRIPE          _IOW ('f', 155, OBD_IOC_DATA_TYPE)
 #define OBD_IOC_LOV_SETEA              _IOW ('f', 156, OBD_IOC_DATA_TYPE)
-
+/* see <lustre/lustre_user.h> for ioctls 157-159 */
 #define OBD_IOC_QUOTACHECK             _IOW ('f', 160, int)
 #define OBD_IOC_POLL_QUOTACHECK        _IOR ('f', 161, struct if_quotacheck *)
 #define OBD_IOC_QUOTACTL               _IOWR('f', 162, struct if_quotactl *)
-
-#define OBD_IOC_MOUNTOPT               _IOWR('f', 170, OBD_IOC_DATA_TYPE)
-
+/* see <lustre/lustre_user.h> for ioctls 163-175 */
+#define OBD_IOC_CHANGELOG_REG          _IOW ('f', 177, struct obd_ioctl_data)
+#define OBD_IOC_CHANGELOG_DEREG        _IOW ('f', 178, struct obd_ioctl_data)
+#define OBD_IOC_CHANGELOG_CLEAR        _IOW ('f', 179, struct obd_ioctl_data)
 #define OBD_IOC_RECORD                 _IOWR('f', 180, OBD_IOC_DATA_TYPE)
 #define OBD_IOC_ENDRECORD              _IOWR('f', 181, OBD_IOC_DATA_TYPE)
 #define OBD_IOC_PARSE                  _IOWR('f', 182, OBD_IOC_DATA_TYPE)
@@ -534,6 +534,10 @@ static inline void obd_ioctl_freedata(char *buf, int len)
  * we define this to be 2T - 4k, which is the ext3 maxbytes. */
 #define LUSTRE_STRIPE_MAXBYTES 0x1fffffff000ULL
 
+/* Special values for remove LOV EA from disk */
+#define LOVEA_DELETE_VALUES(size, count, offset) (size == 0 && count == 0 && \
+                                                 offset == (typeof(offset))(-1))
+
 /* #define POISON_BULK 0 */
 
 /*
@@ -600,6 +604,10 @@ static inline void obd_ioctl_freedata(char *buf, int len)
  * XXX nikita: some ptlrpc daemon threads have races of that sort.
  *
  */
+static inline int back_to_sleep(void *arg)
+{
+        return 0;
+}
 
 #define LWI_ON_SIGNAL_NOOP ((void (*)(void *))(-1))
 
@@ -683,20 +691,26 @@ do {                                                                           \
                 __blocked = l_w_e_set_sigs(0);                                 \
                                                                                \
         for (;;) {                                                             \
-                cfs_set_current_state(CFS_TASK_INTERRUPTIBLE);                 \
+                unsigned       __wstate;                                       \
+                                                                               \
+                __wstate = info->lwi_on_signal != NULL &&                      \
+                           (__timeout == 0 || __allow_intr) ?                  \
+                        CFS_TASK_INTERRUPTIBLE : CFS_TASK_UNINT;               \
+                                                                               \
+                cfs_set_current_state(__wstate);                               \
                                                                                \
                 if (condition)                                                 \
                         break;                                                 \
                                                                                \
                 if (__timeout == 0) {                                          \
-                        cfs_waitq_wait(&__wait, CFS_TASK_INTERRUPTIBLE);       \
+                        cfs_waitq_wait(&__wait, __wstate);                     \
                 } else {                                                       \
                         cfs_duration_t interval = info->lwi_interval?          \
                                              min_t(cfs_duration_t,             \
                                                  info->lwi_interval,__timeout):\
                                              __timeout;                        \
                         cfs_duration_t remaining = cfs_waitq_timedwait(&__wait,\
-                                                   CFS_TASK_INTERRUPTIBLE,     \
+                                                   __wstate,                   \
                                                    interval);                  \
                         __timeout = cfs_time_sub(__timeout,                    \
                                             cfs_time_sub(interval, remaining));\
@@ -817,4 +831,6 @@ do {                                                                    \
 #define LIBLUSTRE_CLIENT (1)
 #endif
 
+/** @} lib */
+
 #endif /* _LUSTRE_LIB_H */