1/* 2 * YAFFS: Yet another Flash File System . A NAND-flash specific file system. 3 * 4 * Copyright (C) 2002-2010 Aleph One Ltd. 5 * for Toby Churchill Ltd and Brightstar Engineering 6 * 7 * Created by Charles Manning <charles@aleph1.co.uk> 8 * 9 * This program is free software; you can redistribute it and/or modify 10 * it under the terms of the GNU Lesser General Public License version 2.1 as 11 * published by the Free Software Foundation. 12 * 13 * Note: Only YAFFS headers are LGPL, YAFFS C code is covered by GPL. 14 */ 15 16#ifndef __YAFFS_LINUX_H__ 17#define __YAFFS_LINUX_H__ 18 19#include "devextras.h" 20#include "yportenv.h" 21 22struct yaffs_LinuxContext { 23 struct ylist_head contextList; /* List of these we have mounted */ 24 struct yaffs_dev_s *dev; 25 struct super_block * superBlock; 26 struct task_struct *bgThread; /* Background thread for this device */ 27 int bgRunning; 28 struct semaphore grossLock; /* Gross locking semaphore */ 29 __u8 *spareBuffer; /* For mtdif2 use. Don't know the size of the buffer 30 * at compile time so we have to allocate it. 31 */ 32 struct ylist_head searchContexts; 33 void (*putSuperFunc)(struct super_block *sb); 34 35 struct task_struct *readdirProcess; 36 unsigned mount_id; 37}; 38 39#define yaffs_dev_to_lc(dev) ((struct yaffs_LinuxContext *)((dev)->os_context)) 40#define yaffs_dev_to_mtd(dev) ((struct mtd_info *)((dev)->driver_context)) 41 42#endif 43 44