⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vsb.h

📁 在flash上实现vsb文件系统的源码资料
💻 H
字号:
#ifndef EXCLUDE_VSB/*;# ***********************************************************************;# *             Intel Confidential                                      *;# *             Copyright (C) Intel Corporation 1994-2000               *;# *             All Rights Reserved.                                    *;# ************************************************************************//***************************************************************** INTEL OEM SOFTWARE LICENSE AGREEMENT* BETWEEN INTEL CORPORATION AND OEM/Licensee ("You")*  (Rev 10/04/99)** BY USING THIS SOFTWARE, YOU ("You" or "Licensee") ARE AGREEING * TO BE BOUND BY THE TERMS OF THIS AGREEMENT.  DO NOT USE THE * SOFTWARE UNTIL YOU HAVE CAREFULLY READ AND AGREED TO THE * FOLLOWING TERMS AND CONDITIONS.  IF YOU DO NOT AGREE TO THE * TERMS OF THIS AGREEMENT, PROMPTLY RETURN THE SOFTWARE AND ANY * ACCOMPANYING ITEMS. LICENSEE MUST BE AN ORIGINAL EQUIPMENT * MANUFACTURER ("OEM") SYSTEM DEVELOPER TO ACQUIRE ANY RIGHTS * IN THE SOFTWARE UNDER THIS LICENSE AGREEMENT.** LICENSE: Intel Corporation ("Intel") grants the Licensee the * non-exclusive right to use the software program ("Software") * in source and / or object code form on the terms set forth * below.  Licensee will not use, copy, modify, rent, sell or * transfer the Software or any portion thereof, except as * provided in this Agreement.  ** USE RESTRICTION:* THIS ROYALTY FREE LICENSE ALLOWS LICENSEE TO USE THE SOFTWARE * WITH INTEL FLASH PRODUCTS ONLY. USE OF THE SOFTWARE WITH ANY * OTHER FLASH PRODUCTS IS EXPRESSLY PROHIBITED UNLESS AND UNTIL * LICENSEE APPLIES FOR, AND IS GRANTED, IN INTEL'S SOLE DISCRETION.* A SEPARATE WRITTEN SOFTWARE LICENSE AGREEMENT BETWEEN LICENSEE * AND INTEL IS NECESSARY BEFORE ANY SUCH USE.** LICENSEE MAY:* 1. Copy the Software for support, backup or archival purposes;* 2. Install or distribute the Software in object code form only;* 3. Install, use, modify, distribute, and/or make or have made * Derivatives based on the Software subject to the terms and * conditions in this Agreement;* 4. Modify and/or use Software source code that Intel provides to* the Licensee, provided that Licensee does not remove or modify * the "Compatibility" module, if any, in the Software or in any * Derivatives and subject to the other restrictions contained * herein;* 5. Allow authorized contractors ("Subcontractors") engaged by * the Licensee for the sole purpose of product development work to* have access to the Software solely for that purpose. * Subcontractors do NOT acquire any of the Licensee rights to the * Software provided in this Agreement.** RESTRICTIONS:  * LICENSEE IS NOT ALLOWED TO: * 1.  Copy, disclose or distribute the Software, in whole or in * part, except as provided for in this Agreement;* 2.  Remove or modify the "Compatibility" module, if any, in * the Software or in any Derivatives;* 3.  Decompile or reverse engineer any Software delivered in * object code form.** LICENSEE MUST:* Execute the "Compatibility" module if provided with the * Software.** TRANSFER:  Except as provided above, Licensee may not * transfer or disclose the Software to any other party.** OWNERSHIP AND COPYRIGHT OF SOFTWARE: Title to the Software * and all copies thereof remain with Intel.  The Software is * copyrighted and is protected by United States and * international copyright laws.  Licensee will not remove * the copyright notice from the Software.  Licensee agrees * to prevent the unauthorized copying of the Software.** DERIVATIVES: "Derivatives" are any work that is based upon the * Software, such as a revision, modification, translation, or * compilation in which the Software is recast, transformed or * adapted; any adaptation, subset, addition, improvement or * combination of or including the Software; and any new material, * information or data derived from the Software, including new * material which may be protectable by copyright, patent or other* proprietary rights.  Licensee is not required to provide Intel * with a copy of the source or object code for any Derivatives * created by Licensee. Licensee may use, market, sell, and/or * distribute Derivatives in object code form only at Licensee's own* risk and expense.  Licensee may use, but may not market, sell or * distribute, source code for any Derivatives, subject to the Use * Restriction and other restrictions contained in this Agreement. * Title to Derivatives, other than the portion(s) of the * Derivatives consisting of any portion of the Software, shall * remain with Licensee.** CONFIDENTIALITY: Licensee will maintain the confidentiality of * the source code for the Software with at least the same degree * of care that Licensee uses to protect Licensee's own confidential * and proprietary information, but with no less than a reasonable * degree under the circumstances. Disclosure of source code will * only be made to Licensee's employees on a need-to-know basis. * Subject to the licenses granted hereunder, Licensee shall * maintain the Software source code and all other proprietary * information relating to the Software in confidence and shall * not disclose to others any such source code or other Intel * proprietary information relating to the Software. Any * Subcontractors to whom Licensee discloses the source code for * the Software must sign a written confidentiality agreement * which contains terms regarding the Software no less restrictive * than those set forth in this Agreement.** WARRANTY:  The Software is provided "AS IS". Intel warrants * that the media on which the Software is furnished will be free * from defects in material and workmanship for a period of one * year upon receipt. ** THE ABOVE WARRANTIES ARE THE ONLY WARRANTIES OF ANY KIND GIVEN * BY INTEL UNDER THIS AGREEMENT. INTEL SPECIFICALLY DISCLAIMS ANY * OTHER WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WARRANTIES OF * MERCHANTABILITY, NONINFRINGEMENT OR FITNESS FOR ANY PARTICULAR * PURPOSE.** LIMITATION OF LIABILITY: NEITHER INTEL NOR ITS VENDORS OR AGENTS * SHALL BE LIABLE FOR ANY LOSS OF PROFITS, LOSS OF USE, LOSS OF * DATA, INTERRUPTION OF BUSINESS, NOR FOR INDIRECT, SPECIAL, * INCIDENTAL OR CONSEQUENTIAL DAMAGES OF ANY KIND WHETHER UNDER * THIS AGREEMENT OR OTHERWISE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGES.** TERMINATION OF THIS LICENSE: Intel reserves the right to conduct * or have conducted audits to verify Licensee's compliance with * this Agreement.  Intel may terminate this Agreement at any * time if Licensee is in breach of any of its terms and conditions.* Upon termination, Licensee will immediately destroy, and certify * in writing the destruction of, the Software and return all copies * of the Software and documentation to Intel.** U.S. GOVERNMENT RESTRICTED RIGHTS: The Software and documentation* were developed at private expense and are provided with * "RESTRICTED RIGHTS".  Use, duplication or disclosure by the * Government is subject to restrictions as set forth in * FAR52.227-14 and DFAR252.227-7013 et seq. or its successor.** EXPORT LAWS: The distribution and export/re-export of the * Software shall be in compliance with the laws, regulations, * orders or other restrictions of the U.S. Export Administration * Regulations.** APPLICABLE LAW: This Agreement is governed by the laws of the * State of Delaware and the United States, including patent and* copyright laws.  Any claim arising out of this Agreement will be * brought in Delaware.  ** Intel reserves the right to use and/or include Licensee's name* in public relations activities and marketing material after the * product is publicly announced.******************************************************************/ /*------------------------------------------------------------------------------     vsb.h --------------------------------------------------------------------------------*/#ifndef VSB_VSB_H#define VSB_VSB_H#include "vsbproto.h"#include "flashdef.h"/*******************************************************************************  VSB.H -- Manifest constants for the Virtual Small Block flash memory*           driver.******************************************************************************/#define FREE_VSB_BUFFER_SIZE            4#define LOGICAL_VSB_BUFFER_SIZE	        5#define MRU_VSB_CACHE_SIZE              15#define MAXIMUM_LOGICAL_VSB_BITS 12 /* The number of bits available   */                                    /* in the vat entry for logical   */                                    /* vsb number. Used to test setup */                                    /* during initialization.         *//**************************   Flash block state definitions**************************/#define VSB_FB_ERASED      0xff     /* Flash block is erased */#define VSB_FB_RECOVER     0xfe     /* Flash block is being recovered into */#define VSB_FB_ERASING     0xfc     /* Erasing child block */#define VSB_FB_WRITE       0xf8     /* Flash block is being written to */#define VSB_FB_FULL        0xf0     /* Flash block is fully allocated */#define VSB_FB_PLR_ERASING 0xFD     /* Powerloss recovery for erase */#define VSB_FB_PLR_WRITE   0xFB     /* Powerloss recovery for Write */#define VSB_FB_MLC_FULL    0xF4     /* PLR transition state */#define VSB_FB_UNUSED      0xffff#define VSB_FB_ATTR        0x0000   /* Offset to block attribute *//**************************   Virtual Small Block VAT entry definitions.   The upper 4 bits of a VSB entry are used to indicate the state of a VSB,   XXXX VVVVVVVVVVVV   ^^^^\____________/   ||||      |   ||||      +---------------- VSB Number   |||+----------------------- VSB is valid   ||+------------------------ Allocated Flag, means VSB number is valid   |+------------------------- VSB being allocated   +-------------------------- VSB Discarded   **************************/#define VSB_VAT_FLAGS         0xf000   /* VSB VAT flags mask */#define VSB_FREE              0xffff   /* VSB unallocated value */#define VSB_ALLOCATING        0xbfff   /* VSB being allocated value */#define VSB_ALLOCATING_MASK   0xb000   /* VSB being allocated mask */#define VSB_ALLOCATED         0x9fff   /* VSB is allocated value */#define VSB_ALLOCATED_MASK    0x9000   /* VSB is allocated mask */#define VSB_VALID             0x8fff   /* VSB is valid value */#define VSB_DISCARDED         0x0fff   /* VSB discarded value */#define VSB_DISCARD_MASK      0x8000   /* VSB discarded bit mask */#define VSB_LOGICAL_MASK      0x0fff   /* get logical VSB mask */#define VSB_PLR_DISCARDED     0x7FFF   /* Discard transition state (PLR) */#define VSB_PLR_DISCARD_MASK  0x7000   /* Mask for Discarding check */#define VSB_MLC_ALLOCATED_MASK 0xA000  /* PLR recovery state for Allocated */#define VSB_SIZE            (512L+16L) /* Virtual Small block size in bytes */#define VSB_PER_BLOCK (WORD)(BLOCK_SIZE / VSB_SIZE)                                       /* VSBs in 1 flash block */#define VAT_ENTRY_SIZE        2        /* Number of bytes in a VAT entry */#define	RECLAIM_THRESHOLD     21       /* Free space management purpose */#define MAX_ERASED_BLOCKS     2        /* Maximum VFB_FB_ERASED state blocks *//* NOTE: TEMP_VAT should not be used anywhere else */#define TEMP_VAT      (WORD)(((VSB_PER_BLOCK * VAT_ENTRY_SIZE) % VSB_SIZE) ? 1L : 0L)#define VAT_SIZE_VSB  (WORD)(((VSB_PER_BLOCK * VAT_ENTRY_SIZE) / VSB_SIZE) + TEMP_VAT)#if 0/* NOTE: VAT_SIZE_VSB defined and MAXIMUM_VSB changed to include VAT_SIZE_VSB */#define MAXIMUM_VSB   (WORD)((VSB_PER_BLOCK - 1) * (BLOCK_COUNT - 1))#else/* NOTE: 2^12=4096 maximum VSBs allowed in one component */#define MAXIMUM_VSB   (WORD)((VSB_PER_BLOCK - VAT_SIZE_VSB) * (BLOCK_COUNT - 1))#endif#endif /* VSB_VSB_H */#endif /* EXCLUDE_VSB */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -