?? mvosbios.h
字號:
/*******************************************************************************
*
* Copyright 2003,MARVELL SEMICONDUCTOR ISRAEL, LTD.
* THIS CODE CONTAINS CONFIDENTIAL INFORMATION OF MARVELL.
* NO RIGHTS ARE GRANTED HEREIN UNDER ANY PATENT, MASK WORK RIGHT OR COPYRIGHT
* OF MARVELL OR ANY THIRD PARTY. MARVELL RESERVES THE RIGHT AT ITS SOLE
* DISCRETION TO REQUEST THAT THIS CODE BE IMMEDIATELY RETURNED TO MARVELL.
* THIS CODE IS PROVIDED "AS IS". MARVELL MAKES NO WARRANTIES, EXPRESSED,
* IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY, COMPLETENESS OR PERFORMANCE.
*
* MARVELL COMPRISES MARVELL TECHNOLOGY GROUP LTD. (MTGL) AND ITS SUBSIDIARIES,
* MARVELL INTERNATIONAL LTD. (MIL), MARVELL TECHNOLOGY, INC. (MTI), MARVELL
* SEMICONDUCTOR, INC. (MSI), MARVELL ASIA PTE LTD. (MAPL), MARVELL JAPAN K.K.
* (MJKK), MARVELL SEMICONDUCTOR ISRAEL. (MSIL), MARVELL TAIWAN, LTD. AND
* SYSKONNECT GMBH.
*
********************************************************************************
* mvOsBios.h - O.S. interface header file for BIOS IAL
*
* DESCRIPTION:
* This header file contains OS dependent definition for BIOS
*
* DEPENDENCIES:
*
* FILE REVISION NUMBER:
* $Revision: 1.7 $
*******************************************************************************/
#ifndef __INCmvOsLinuxh
#define __INCmvOsLinuxh
/* Includes */
#include <string.h>
/* Definitions */
#if defined (MV_LOG_DEBUG) || defined (MV_LOG_ERROR)
#define PRNTHEXTSINGLE
#define DEBUG_IAL
#define DEBUG_IAL_SERIAL
#endif
/*
* Override CORE Driver SW queue size to 1. The CORE Driver SW queue is not
* used for issuing UDMA commands; so minimizing this to 1 makes it possible
* to minimize footprint of BIOS Extension driver when statically allocating
* the channel's data structures.
*/
#define MV_SATA_OVERRIDE_SW_QUEUE_SIZE
#define MV_SATA_REQUESTED_SW_QUEUE_SIZE 1
#define MV_REGS_ACCESSED_BY_IO_BAR
/* System dependent macro for flushing CPU write cache */
#define MV_CPU_WRITE_BUFFER_FLUSH()
/* System dependent little endian from / to CPU conversions */
#define MV_CPU_TO_LE16(x) x
#define MV_CPU_TO_LE32(x) x
#define MV_LE16_TO_CPU(x) x
#define MV_LE32_TO_CPU(x) x
/* System dependent register read / write in byte/word/dword variants */
unsigned long readRegister (unsigned long base, unsigned long offset);
void writeRegister (unsigned long base, unsigned long offset, unsigned long value);
/*void pioWrite16bit (unsigned short offset, unsigned short data);
unsigned short pioRead16bit (unsigned short offset);*/
void waitForKeystroke (void);
unsigned short readSegmentOffset16bit (unsigned short segment_, unsigned short offset_);
unsigned char readSegmentOffset8bit (unsigned short segment_, unsigned short offset_);
void writeSegmentOffset16bit (unsigned short segment_, unsigned short offset_, unsigned short value_);
void writeSegmentOffset8bit (unsigned short segment_, unsigned short offset_, unsigned char value_);
void memcpySegmentOffset32bitForward (unsigned short segment_,
unsigned short destinationOffset_,
unsigned short sourceOffset_,
unsigned short byteCount_);
#ifdef PRNTHEXTSINGLE
void printHexSingle(char *fmt, unsigned short value_);
#else
#define printHexSingle(x,y)
#endif
#define MV_REG_WRITE_BYTE(base, offset, val) writeRegister ((unsigned long)base,(unsigned long)offset, val)
#define MV_REG_WRITE_WORD(base, offset, val) writeRegister ((unsigned long)base,(unsigned long)offset, val)
#define MV_REG_WRITE_DWORD(base, offset, val) writeRegister ((unsigned long)base,(unsigned long)offset, val)
#define MV_REG_READ_BYTE(base,offset) (readRegister((unsigned long)base, (unsigned long)offset))
#define MV_REG_READ_WORD(base,offset) (readRegister((unsigned long)base, (unsigned long)offset))
#define MV_REG_READ_DWORD(base,offset) (readRegister((unsigned long)base, (unsigned long)offset))
/* Typedefs */
typedef enum mvBoolean
{
MV_FALSE, MV_TRUE
} MV_BOOLEAN;
/* System dependant typedefs */
typedef void MV_VOID;
typedef unsigned long MV_U32;
typedef unsigned short MV_U16;
typedef unsigned char MV_U8;
typedef void *MV_VOID_PTR;
typedef unsigned long *MV_U32_PTR;
typedef unsigned short *MV_U16_PTR;
typedef unsigned char *MV_U8_PTR;
typedef char *MV_CHAR_PTR;
typedef unsigned long MV_BUS_ADDR_T;
typedef unsigned long MV_CPU_FLAGS;
/* Structures */
/* System dependent structure */
typedef struct mvOsSemaphore
{
unsigned long lock;
unsigned long flags;
} MV_OS_SEMAPHORE;
/* Functions (User implemented)*/
/* Semaphore init, take and release */
#define mvOsSemInit(x) MV_TRUE
#define mvOsSemTake(x) ;
#define mvOsSemRelease(x) ;
#define NULL 0
/* Delay function in micro seconds resolution */
void mvMicroSecondsDelay(MV_VOID_PTR, MV_U32);
/* System logging function */
#ifdef MV_DEBUG_LOG
int mvLogMsg(MV_U8, MV_CHAR_PTR, ...);
#else
#define mvLogMsg()
#endif
#endif /* __INCmvOsLinuxh */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -