Add missing definition for yaffs_strcmp
[yaffs2.git] / yaffs_nameval.c
index e521622c97dee0da2ce0bc35410f3c66f13632d3..b04ade5ba36cff55ecd09bc21ae23a8388ca7aac 100644 (file)
@@ -37,7 +37,7 @@ static int nval_find(const char *xb, int xb_size, const YCHAR *name,
 
        memcpy(&size, xb, sizeof(int));
        while (size > 0 && (size < xb_size) && (pos + size < xb_size)) {
-               if (!strncmp((YCHAR *) (xb + pos + sizeof(int)), name, size)) {
+               if (!yaffs_strncmp((YCHAR *) (xb + pos + sizeof(int)), name, size)) {
                        if (exist_size)
                                *exist_size = size;
                        return pos;
@@ -50,7 +50,7 @@ static int nval_find(const char *xb, int xb_size, const YCHAR *name,
        }
        if (exist_size)
                *exist_size = 0;
-       return -1;
+       return -ENODATA;
 }
 
 static int nval_used(const char *xb, int xb_size)
@@ -74,23 +74,22 @@ int nval_del(char *xb, int xb_size, const YCHAR *name)
        int pos = nval_find(xb, xb_size, name, NULL);
        int size;
 
-       if (pos >= 0 && pos < xb_size) {
-               /* Find size, shift rest over this record,
-                * then zero out the rest of buffer */
-               memcpy(&size, xb + pos, sizeof(int));
-               memcpy(xb + pos, xb + pos + size, xb_size - (pos + size));
-               memset(xb + (xb_size - size), 0, size);
-               return 0;
-       } else {
+       if (pos < 0 || pos >= xb_size)
                return -ENODATA;
-       }
+
+       /* Find size, shift rest over this record,
+        * then zero out the rest of buffer */
+       memcpy(&size, xb + pos, sizeof(int));
+       memcpy(xb + pos, xb + pos + size, xb_size - (pos + size));
+       memset(xb + (xb_size - size), 0, size);
+       return 0;
 }
 
 int nval_set(char *xb, int xb_size, const YCHAR *name, const char *buf,
                int bsize, int flags)
 {
        int pos;
-       int namelen = strnlen(name, xb_size);
+       int namelen = yaffs_strnlen(name, xb_size);
        int reclen;
        int size_exist = 0;
        int space;
@@ -120,7 +119,7 @@ int nval_set(char *xb, int xb_size, const YCHAR *name, const char *buf,
 
        memcpy(xb + pos, &reclen, sizeof(int));
        pos += sizeof(int);
-       strncpy((YCHAR *) (xb + pos), name, reclen);
+       yaffs_strncpy((YCHAR *) (xb + pos), name, reclen);
        pos += (namelen + 1);
        memcpy(xb + pos, buf, bsize);
        return 0;
@@ -147,6 +146,12 @@ int nval_get(const char *xb, int xb_size, const YCHAR * name, char *buf,
                pos++;
                size--;
 
+               /* If bsize is zero then this is a size query.
+                * Return the size, but don't copy.
+                */
+               if (!bsize)
+                       return size;
+
                if (size <= bsize) {
                        memcpy(buf, xb + pos, size);
                        return size;
@@ -173,7 +178,7 @@ int nval_list(const char *xb, int xb_size, char *buf, int bsize)
                !filled) {
                pos += sizeof(int);
                size -= sizeof(int);
-               name_len = strnlen((YCHAR *) (xb + pos), size);
+               name_len = yaffs_strnlen((YCHAR *) (xb + pos), size);
                if (ncopied + name_len + 1 < bsize) {
                        memcpy(buf, xb + pos, name_len * sizeof(YCHAR));
                        buf += name_len;