xref: /rk3399_rockchip-uboot/fs/yaffs2/ydirectenv.h (revision b5bf5cb3b3e81298247a53d5b514cf941cd13a9f)
143ea36fbSWilliam Juul /*
243ea36fbSWilliam Juul  * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
343ea36fbSWilliam Juul  *
4753ac610SCharles Manning  * Copyright (C) 2002-2011 Aleph One Ltd.
543ea36fbSWilliam Juul  *   for Toby Churchill Ltd and Brightstar Engineering
643ea36fbSWilliam Juul  *
743ea36fbSWilliam Juul  * Created by Charles Manning <charles@aleph1.co.uk>
843ea36fbSWilliam Juul  *
943ea36fbSWilliam Juul  * This program is free software; you can redistribute it and/or modify
1043ea36fbSWilliam Juul  * it under the terms of the GNU Lesser General Public License version 2.1 as
1143ea36fbSWilliam Juul  * published by the Free Software Foundation.
1243ea36fbSWilliam Juul  *
1343ea36fbSWilliam Juul  * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL.
1443ea36fbSWilliam Juul  */
1543ea36fbSWilliam Juul 
1643ea36fbSWilliam Juul /*
1743ea36fbSWilliam Juul  * ydirectenv.h: Environment wrappers for YAFFS direct.
1843ea36fbSWilliam Juul  */
1943ea36fbSWilliam Juul 
2043ea36fbSWilliam Juul #ifndef __YDIRECTENV_H__
2143ea36fbSWilliam Juul #define __YDIRECTENV_H__
2243ea36fbSWilliam Juul 
2374f45b73SCharles Manning #include <common.h>
2474f45b73SCharles Manning #include <malloc.h>
2574f45b73SCharles Manning #include <linux/compat.h>
2674f45b73SCharles Manning 
27753ac610SCharles Manning #include "yaffs_osglue.h"
2843ea36fbSWilliam Juul 
29753ac610SCharles Manning void yaffs_bug_fn(const char *file_name, int line_no);
30753ac610SCharles Manning 
31753ac610SCharles Manning 
3243ea36fbSWilliam Juul 
3343ea36fbSWilliam Juul #define YCHAR char
3443ea36fbSWilliam Juul #define YUCHAR unsigned char
3543ea36fbSWilliam Juul #define _Y(x) x
36753ac610SCharles Manning 
37753ac610SCharles Manning #define yaffs_strcat(a, b)	strcat(a, b)
3843ea36fbSWilliam Juul #define yaffs_strcpy(a, b)	strcpy(a, b)
3943ea36fbSWilliam Juul #define yaffs_strncpy(a, b, c)	strncpy(a, b, c)
40753ac610SCharles Manning #define yaffs_strnlen(s, m)	strnlen(s, m)
41753ac610SCharles Manning #ifdef CONFIG_YAFFS_CASE_INSENSITIVE
42753ac610SCharles Manning #define yaffs_strcmp(a, b)	strcasecmp(a, b)
43753ac610SCharles Manning #define yaffs_strncmp(a, b, c)	strncasecmp(a, b, c)
4443ea36fbSWilliam Juul #else
45753ac610SCharles Manning #define yaffs_strcmp(a, b)	strcmp(a, b)
46753ac610SCharles Manning #define yaffs_strncmp(a, b, c)	strncmp(a, b, c)
4743ea36fbSWilliam Juul #endif
4843ea36fbSWilliam Juul 
4943ea36fbSWilliam Juul 
50753ac610SCharles Manning void yaffs_qsort(void *aa, size_t n, size_t es,
51753ac610SCharles Manning 		int (*cmp)(const void *, const void *));
5243ea36fbSWilliam Juul 
53753ac610SCharles Manning #define sort(base, n, sz, cmp_fn, swp) yaffs_qsort(base, n, sz, cmp_fn)
5443ea36fbSWilliam Juul 
55753ac610SCharles Manning #define YAFFS_PATH_DIVIDERS  "/"
5643ea36fbSWilliam Juul 
57753ac610SCharles Manning #ifdef NO_inline
58753ac610SCharles Manning #define inline
59753ac610SCharles Manning #endif
6043ea36fbSWilliam Juul 
61753ac610SCharles Manning #define yaffs_trace(msk, fmt, ...) do { \
62753ac610SCharles Manning 	if (yaffs_trace_mask & (msk)) \
63753ac610SCharles Manning 		printf("yaffs: " fmt "\n", ##__VA_ARGS__); \
64753ac610SCharles Manning } while (0)
6543ea36fbSWilliam Juul 
6643ea36fbSWilliam Juul 
6743ea36fbSWilliam Juul #define YAFFS_LOSTNFOUND_NAME		"lost+found"
6843ea36fbSWilliam Juul #define YAFFS_LOSTNFOUND_PREFIX		"obj"
6943ea36fbSWilliam Juul 
7043ea36fbSWilliam Juul #include "yaffscfg.h"
7143ea36fbSWilliam Juul 
7243ea36fbSWilliam Juul #define Y_CURRENT_TIME yaffsfs_CurrentTime()
7343ea36fbSWilliam Juul #define Y_TIME_CONVERT(x) x
7443ea36fbSWilliam Juul 
7543ea36fbSWilliam Juul #define YAFFS_ROOT_MODE			0666
7643ea36fbSWilliam Juul #define YAFFS_LOSTNFOUND_MODE		0666
7743ea36fbSWilliam Juul 
78*b5bf5cb3SMasahiro Yamada #include <linux/list.h>
79753ac610SCharles Manning 
80753ac610SCharles Manning #include "yaffsfs.h"
8143ea36fbSWilliam Juul 
8243ea36fbSWilliam Juul #endif
83