#ifndef __KERNEL__
+#include <string.h>
#include <libcfs/libcfs.h>
/*
(void)link;
/* well, wait for something to happen */
- cfs_call_wait_handler(0);
+ call_wait_handler(0);
}
int64_t cfs_waitq_timedwait(struct cfs_waitlink *link, cfs_task_state_t state,
{
LASSERT(link != NULL);
(void)link;
- cfs_call_wait_handler(timeout);
+ call_wait_handler(timeout);
return 0;
}
return getgid();
}
+#ifndef HAVE_STRLCPY /* not in glibc for RHEL 5.x, remove when obsolete */
+size_t strlcpy(char *tgt, const char *src, size_t tgt_len)
+{
+ int src_len = strlen(src);
+
+ strncpy(tgt, src, tgt_len - 1);
+ tgt[tgt_len - 1] = '\0';
+
+ return src_len + 1;
+}
+#endif
+
+#ifndef HAVE_STRLCAT /* not in glibc for RHEL 5.x, remove when obsolete */
+size_t strlcat(char *tgt, const char *src, size_t size)
+{
+ size_t tgt_len = strlen(tgt);
+
+ if (size > tgt_len) {
+ strncat(tgt, src, size - tgt_len - 1);
+ tgt[size - 1] = '\0';
+ }
+
+ return tgt_len + strlen(src);
+}
+#endif
+
+/* Read the environment variable of current process specified by @key. */
+int cfs_get_environ(const char *key, char *value, int *val_len)
+{
+ char *entry;
+ int len;
+
+ entry = getenv(key);
+ if (entry == NULL)
+ return -ENOENT;
+
+ len = strlcpy(value, entry, *val_len);
+ if (len >= *val_len)
+ return -EOVERFLOW;
+
+ return 0;
+}
+
void cfs_enter_debugger(void)
{
/*