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

📄 bldr.h

📁 WinCE 3.0 BSP, 包含Inter SA1110, Intel_815E, Advantech_PCM9574 等
💻 H
字号:
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 1995-2000  Microsoft Corporation

Module Name: bldr.h

Abstract: Common boot loader definitions.

Functions: None.

Notes:

--*/

#ifndef BLDR_H
#define BLDR_H

#include <blcommon.h>


// Function prototypes.
//
void SpinForever(void);
DWORD OEMGetSecs(void);
USHORT printRev(void);
void EdbgOutputDebugString(const char *fmt, ...);
int             __cdecl _inp  (unsigned short);
unsigned short  __cdecl _inpw (unsigned short);
unsigned long   __cdecl _inpd (unsigned short);
int             __cdecl _outp (unsigned short, int);
unsigned short  __cdecl _outpw(unsigned short, unsigned short);
unsigned long   __cdecl _outpd(unsigned short, unsigned long);
// ** Ethernet functions.
BOOL OEMEthPlatformInit(VOID);
VOID OEMEthLaunch(DWORD dwImageStart, DWORD dwImageLength, DWORD dwLaunchAddr, const ROMHDR *pRomHdr);
DWORD OEMEthPreDownload(VOID);
BOOL OEMEthReadData(DWORD cbData, LPBYTE pbData);
// ** ATA/IDE HDD functions.
BOOL OEMHDDPlatformInit(VOID);
VOID OEMHDDLaunch(DWORD dwImageStart, DWORD dwImageLength, DWORD dwLaunchAddr, const ROMHDR *pRomHdr);
DWORD OEMHDDPreDownload(VOID);
BOOL OEMHDDReadData(DWORD cbData, LPBYTE pbData);


// Type definitions.
//
typedef void (*PFN_LAUNCH)();
typedef enum        // Supported image load/download methods.
{
    BL_ENET = 0,    // Ethernet.
    BL_ATAHDD       // ATA/IDE hard drive.
} IMG_LOC_ID;
typedef BOOL (*PFN_PLATFORM_INIT)(VOID);
typedef VOID (*PFN_LAUNCH)(VOID);
typedef DWORD (*PFN_PRE_DOWNLOAD)(VOID);
typedef BOOL (*PFN_READ_DATA)(DWORD cbData, LPBYTE pbData);
typedef struct		// Boot loader environment variables.
{
    ULONG nSig;
    ULONG nChkSum;
    USHORT nMajVer;
    USHORT nMinVer;
    ULONG nIPAddr;
    ULONG nSubnetMask;
    UCHAR nUseDHCP;
    IMG_LOC_ID nImgLoc;
    ULONG nAutoCount;
} LOADER_VARS, *PLOADER_VARS;

// Preprocessor defines.
//
#define DEBUG_ETHER_IRQ     0x5         // NIC interrupt line number.
#define KIMAGE_NAME	    "nk.bin"    // Kernel image name.
#define ETHDMA_BUFF_BASE    0x4000      // *** Must match config.bib values ***
#define ETHDMA_BUFF_SIZE    0x20000     // Enet buffer base address and size.

#define BLDR_VERSION_MAJOR  1           // Loader version.
#define BLDR_VERSION_MINOR  0           //

#define TO_UPPER(a)         (a >= 0x61 ? a - 0x20 : a)


// Image copy to RAM
// ** Note these numbers should match the BIB file numbers. ***
#define RAM_DEST_ADDR   0x60000
#define ROM_SOURCE_ADDR 0xFFFC0000
#define MAX_IMAGE_SIZE  0x40000

// Boot Args
#define BOOT_ARG_PTR_LOCATION_NP    0x001FFFFC
#define BOOT_ARG_LOCATION_NP        0x001FFF00

// 
#undef  TEXT
#define TEXT
#define NKDbgPrintfW    EdbgOutputDebugString

#ifdef DEBUG
#define ZONE_PCICNFG    DEBUGZONE(10)
#define ZONE_BOOTPROG   DEBUGZONE(11)
#define ZONE_INFO       DEBUGZONE(12)
#define ZONE_FUNCTION   DEBUGZONE(13)
#define ZONE_WARN       DEBUGZONE(14)
#define ZONE_ERROR      DEBUGZONE(15)
#endif  // DEBUG.

// Status bar
#define SB_BAR_WIDTH            50      // number of blocks that make up SB

typedef struct
{
    ULONG sval;
    ULONG cval;
    ULONG eval;
    unsigned char last_percent;
} STATUSBAR, *PSTATUSBAR;

#define BACKSPACE           0x08

#endif	// BLDR_H.

⌨️ 快捷键说明

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