# include <sys/time.h>
# include <sys/types.h>
# include <libcfs/user-time.h>
-# include <libcfs/user-bitops.h>
#endif /* __KERNEL__ */
#include "curproc.h"
return !(val & (val - 1));
}
-#define IS_PO2(val) __is_po2((unsigned long long)(val))
-
-#define LOWEST_BIT_SET(x) ((x) & ~((x) - 1))
+#define IS_PO2(val) __is_po2((unsigned long long)(val))
+#define PO2_ROUNDUP_TYPED(x, po2, type) (-(-(type)(x) & -(type)(po2)))
+#define LOWEST_BIT_SET(x) ((x) & ~((x) - 1))
/* Sparse annotations */
#ifdef __KERNEL__
/* Clean up the watchdog */
void lc_watchdog_delete(struct lc_watchdog *lcw);
-/* Dump a debug log */
-void lc_watchdog_dumplog(pid_t pid, void *data);
-
#endif /* __KERNEL__ */
/* need both kernel and user-land acceptor */
void cfs_restore_sigs(sigset_t);
void cfs_clear_sigpending(void);
-int convert_server_error(__u64 ecode);
-int convert_client_oflag(int cflag, int *result);
-
-/*
- * Stack-tracing filling.
- */
-
-/*
- * Platform-dependent data-type to hold stack frames.
- */
-struct cfs_stack_trace;
-
-/*
- * Fill @trace with current back-trace.
- */
-void cfs_stack_trace_fill(struct cfs_stack_trace *trace);
-
-/*
- * Return instruction pointer for frame @frame_no. NULL if @frame_no is
- * invalid.
- */
-void *cfs_stack_trace_frame(struct cfs_stack_trace *trace, int frame_no);
-
/*
* Random number handling
*/
void cfs_get_random_bytes(void *buf, int size);
#include <libcfs/byteorder.h>
-#include <libcfs/err.h>
#include <libcfs/libcfs_debug.h>
#include <libcfs/libcfs_private.h>
-#include <libcfs/bitmap.h>
#ifdef __KERNEL__
+# include <libcfs/bitmap.h>
# include <libcfs/libcfs_cpu.h>
# include <libcfs/libcfs_ioctl.h>
# include <libcfs/libcfs_prim.h>
#include <libcfs/libcfs_time.h>
#ifdef __KERNEL__
# include <libcfs/libcfs_string.h>
-#endif
-#include <libcfs/libcfs_workitem.h>
-#ifdef __KERNEL__
+# include <libcfs/libcfs_workitem.h>
# include <libcfs/libcfs_hash.h>
# include <libcfs/libcfs_heap.h>
# include <libcfs/libcfs_fail.h>
-#endif /* __KERNEL__ */
/* container_of depends on "likely" which is defined in libcfs_private.h */
static inline void *__container_of(const void *ptr, unsigned long shift)
#define container_of0(ptr, type, member) \
((type *)__container_of((ptr), offsetof(type, member)))
+#endif /* __KERNEL__ */
+
#endif /* _LIBCFS_LIBCFS_H_ */