亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? ceddk.h

?? 這個是嵌入式arm系列的一個bootloader程序。對需要編寫bootloader的很有參考價值
?? H
?? 第 1 頁 / 共 2 頁
字號:
    DWORD   LogicalDeviceID;
    DWORD   CompatibleIDs[8];
}   ISA_PNP_LOGICAL_DEVICE_INFO, *PISA_PNP_LOGICAL_DEVICE_INFO;

typedef struct  _ISA_PNP_CONFIG
{
    DWORD                           VendorID;
    DWORD                           SerialNumber;
    DWORD                           NumberLogicalDevices;
    ISA_PNP_LOGICAL_DEVICE_INFO     LogicalDeviceInfo[8];
}   ISA_PNP_CONFIG, *PISA_PNP_CONFIG;

typedef struct  _ISA_PNP_RESOURCES
{
    USHORT                          Flags;
    struct
    {
        USHORT      MemoryBase;
        USHORT      MemoryUpperLimit;
        UCHAR       MemoryControl;
    }                               Memory24Descriptors[4];
    struct
    {
        DWORD       MemoryBase;
        DWORD       MemoryUpperLimit;
        UCHAR       MemoryControl;
    }                               Memory32Descriptors[4];
    USHORT                          IoPortDescriptors[8];
    struct
    {
        UCHAR       IRQLevel;
        UCHAR       IRQType;
    }                               IRQDescriptors[2];
    UCHAR                           DMADescriptors[2];
}   ISA_PNP_RESOURCES, *PISA_PNP_RESOURCES;

#define ISA_PNP_RESOURCE_FLAG_ACTIVE    0x00000001

//++
//
// ULONG
// ROUND_TO_PAGES (
//     IN ULONG Size
//     )
//
// Routine Description:
//
//     The ROUND_TO_PAGES macro takes a size in bytes and rounds it up to a
//     multiple of the page size.
//
//     NOTE: This macro fails for values 0xFFFFFFFF - (PAGE_SIZE - 1).
//
// Arguments:
//
//     Size - Size in bytes to round up to a page multiple.
//
// Return Value:
//
//     Returns the size rounded up to a multiple of the page size.
//
//--

#define ROUND_TO_PAGES(Size)  (((ULONG)(Size) + PAGE_SIZE - 1) & ~(PAGE_SIZE - 1))

//++
//
// ULONG
// BYTES_TO_PAGES (
//     IN ULONG Size
//     )
//
// Routine Description:
//
//     The BYTES_TO_PAGES macro takes the size in bytes and calculates the
//     number of pages required to contain the bytes.
//
// Arguments:
//
//     Size - Size in bytes.
//
// Return Value:
//
//     Returns the number of pages required to contain the specified size.
//
//--

#define BYTES_TO_PAGES(Size)  (((ULONG)(Size) >> PAGE_SHIFT) + \
                               (((ULONG)(Size) & (PAGE_SIZE - 1)) != 0))

//++
//
// ULONG
// BYTE_OFFSET (
//     IN PVOID Va
//     )
//
// Routine Description:
//
//     The BYTE_OFFSET macro takes a virtual address and returns the byte offset
//     of that address within the page.
//
// Arguments:
//
//     Va - Virtual address.
//
// Return Value:
//
//     Returns the byte offset portion of the virtual address.
//
//--

#define BYTE_OFFSET(Va) ((ULONG)(Va) & (PAGE_SIZE - 1))


//++
//
// PVOID
// PAGE_ALIGN (
//     IN PVOID Va
//     )
//
// Routine Description:
//
//     The PAGE_ALIGN macro takes a virtual address and returns a page-aligned
//     virtual address for that page.
//
// Arguments:
//
//     Va - Virtual address.
//
// Return Value:
//
//     Returns the page aligned virtual address.
//
//--

#define PAGE_ALIGN(Va) ((PVOID)((ULONG)(Va) & ~(PAGE_SIZE - 1)))


//++
//
// ULONG
// ADDRESS_AND_SIZE_TO_SPAN_PAGES (
//     IN PVOID Va,
//     IN ULONG Size
//     )
//
// Routine Description:
//
//     The ADDRESS_AND_SIZE_TO_SPAN_PAGES macro takes a virtual address and
//     size and returns the number of pages spanned by the size.
//
// Arguments:
//
//     Va - Virtual address.
//
//     Size - Size in bytes.
//
// Return Value:
//
//     Returns the number of pages spanned by the size.
//
//--

#define ADDRESS_AND_SIZE_TO_SPAN_PAGES(Va,Size) \
   ((((ULONG)((ULONG)(Size) - 1L) >> PAGE_SHIFT) + \
   (((((ULONG)(Size-1)&(PAGE_SIZE-1)) + ((ULONG)Va & (PAGE_SIZE -1)))) >> PAGE_SHIFT)) + 1L)

#define COMPUTE_PAGES_SPANNED(Va, Size) \
    ((((ULONG)Va & (PAGE_SIZE -1)) + (Size) + (PAGE_SIZE - 1)) >> PAGE_SHIFT)
//
//
//

NTKERNELAPI
PVOID
MmMapIoSpace (
    IN PHYSICAL_ADDRESS PhysicalAddress,
    IN ULONG NumberOfBytes,
    IN BOOLEAN CacheEnable
    );

NTKERNELAPI
VOID
MmUnmapIoSpace (
    IN PVOID BaseAddress,
    IN ULONG NumberOfBytes
    );

//
// I/O driver configuration functions.
//

NTHALAPI
ULONG
HalGetBusDataByOffset(
    IN BUS_DATA_TYPE BusDataType,
    IN ULONG BusNumber,
    IN ULONG SlotNumber,
    IN PVOID Buffer,
    IN ULONG Offset,
    IN ULONG Length
    );

ULONG __inline
HalGetBusData(
    IN BUS_DATA_TYPE BusDataType,
    IN ULONG BusNumber,
    IN ULONG SlotNumber,
    IN PVOID Buffer,
    IN ULONG Length
    )
{
    return HalGetBusDataByOffset(
        BusDataType, BusNumber, SlotNumber, Buffer, 0, Length);
}

NTHALAPI
ULONG
HalSetBusDataByOffset(
    IN BUS_DATA_TYPE BusDataType,
    IN ULONG BusNumber,
    IN ULONG SlotNumber,
    IN PVOID Buffer,
    IN ULONG Offset,
    IN ULONG Length
    );

ULONG __inline
HalSetBusData(
    IN BUS_DATA_TYPE BusDataType,
    IN ULONG BusNumber,
    IN ULONG SlotNumber,
    IN PVOID Buffer,
    IN ULONG Length
    )
{
    return HalSetBusDataByOffset(
        BusDataType, BusNumber, SlotNumber, Buffer, 0, Length);
}

NTHALAPI
BOOLEAN
HalTranslateBusAddress(
    IN INTERFACE_TYPE  InterfaceType,
    IN ULONG BusNumber,
    IN PHYSICAL_ADDRESS BusAddress,
    IN OUT PULONG AddressSpace,
    OUT PPHYSICAL_ADDRESS TranslatedAddress
    );

//
// I/O space read and write macros.
//
//  These are implemented as functions in ceddk.dll, since only the platform
//  architect knows for sure how the peripherals are mapped to the chip.  An
//  appropriate DLL must then be written for each platform.
//
//  The READ/WRITE_REGISTER_* calls manipulate I/O registers in MEMORY space.
//  (Use x86 move instructions, with LOCK prefix to force correct behavior
//   w.r.t. caches and write buffers.)
//
//  The READ/WRITE_PORT_* calls manipulate I/O registers in PORT space.
//  (Use x86 in/out instructions.)
//

NTKERNELAPI
UCHAR
READ_REGISTER_UCHAR(
    PUCHAR  Register
    );

NTKERNELAPI
USHORT
READ_REGISTER_USHORT(
    PUSHORT Register
    );

NTKERNELAPI
ULONG
READ_REGISTER_ULONG(
    PULONG  Register
    );

NTKERNELAPI
VOID
READ_REGISTER_BUFFER_UCHAR(
    PUCHAR  Register,
    PUCHAR  Buffer,
    ULONG   Count
    );

NTKERNELAPI
VOID
READ_REGISTER_BUFFER_USHORT(
    PUSHORT Register,
    PUSHORT Buffer,
    ULONG   Count
    );

NTKERNELAPI
VOID
READ_REGISTER_BUFFER_ULONG(
    PULONG  Register,
    PULONG  Buffer,
    ULONG   Count
    );


NTKERNELAPI
VOID
WRITE_REGISTER_UCHAR(
    PUCHAR  Register,
    UCHAR   Value
    );

NTKERNELAPI
VOID
WRITE_REGISTER_USHORT(
    PUSHORT Register,
    USHORT  Value
    );

NTKERNELAPI
VOID
WRITE_REGISTER_ULONG(
    PULONG  Register,
    ULONG   Value
    );

NTKERNELAPI
VOID
WRITE_REGISTER_BUFFER_UCHAR(
    PUCHAR  Register,
    PUCHAR  Buffer,
    ULONG   Count
    );

NTKERNELAPI
VOID
WRITE_REGISTER_BUFFER_USHORT(
    PUSHORT Register,
    PUSHORT Buffer,
    ULONG   Count
    );

NTKERNELAPI
VOID
WRITE_REGISTER_BUFFER_ULONG(
    PULONG  Register,
    PULONG  Buffer,
    ULONG   Count
    );

NTKERNELAPI
UCHAR
READ_PORT_UCHAR(
    PUCHAR  Port
    );

NTKERNELAPI
USHORT
READ_PORT_USHORT(
    PUSHORT Port
    );

NTKERNELAPI
ULONG
READ_PORT_ULONG(
    PULONG  Port
    );

NTKERNELAPI
VOID
READ_PORT_BUFFER_UCHAR(
    PUCHAR  Port,
    PUCHAR  Buffer,
    ULONG   Count
    );

NTKERNELAPI
VOID
READ_PORT_BUFFER_USHORT(
    PUSHORT Port,
    PUSHORT Buffer,
    ULONG   Count
    );

NTKERNELAPI
VOID
READ_PORT_BUFFER_ULONG(
    PULONG  Port,
    PULONG  Buffer,
    ULONG   Count
    );

NTKERNELAPI
VOID
WRITE_PORT_UCHAR(
    PUCHAR  Port,
    UCHAR   Value
    );

NTKERNELAPI
VOID
WRITE_PORT_USHORT(
    PUSHORT Port,
    USHORT  Value
    );

NTKERNELAPI
VOID
WRITE_PORT_ULONG(
    PULONG  Port,
    ULONG   Value
    );

NTKERNELAPI
VOID
WRITE_PORT_BUFFER_UCHAR(
    PUCHAR  Port,
    PUCHAR  Buffer,
    ULONG   Count
    );

NTKERNELAPI
VOID
WRITE_PORT_BUFFER_USHORT(
    PUSHORT Port,
    PUSHORT Buffer,
    ULONG   Count
    );

NTKERNELAPI
VOID
WRITE_PORT_BUFFER_ULONG(
    PULONG  Port,
    PULONG  Buffer,
    ULONG   Count
    );

#ifdef __cplusplus
}
#endif // __cplusplus

#endif // _CEDDK_

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精选一区二区三区| 亚洲黄色av一区| 极品销魂美女一区二区三区| 欧美精品精品一区| 免费精品视频在线| 久久久精品日韩欧美| 成人app下载| 亚洲最新在线观看| 欧美精品久久久久久久多人混战 | 欧美色精品天天在线观看视频| 亚洲国产精品久久久久秋霞影院 | 九一久久久久久| 国产亚洲欧美在线| 91首页免费视频| 五月天激情综合| 欧美videofree性高清杂交| 国产乱淫av一区二区三区| 国产精品久久久久久久久免费相片| 99精品黄色片免费大全| 亚洲最大成人网4388xx| 日韩免费视频线观看| 成人福利视频网站| 五月综合激情婷婷六月色窝| 久久久777精品电影网影网 | 亚洲国产精品自拍| 久久久不卡网国产精品二区| 一本大道av伊人久久综合| 蜜桃久久精品一区二区| 日韩一区在线看| 欧美一区二区美女| 91丨porny丨首页| 韩国av一区二区三区四区| 自拍偷自拍亚洲精品播放| 91精品国产乱| 99热在这里有精品免费| 日本不卡不码高清免费观看| 国产精品不卡在线观看| 91精品免费在线观看| 99热精品国产| 国产一区二区三区四区五区入口| 一区二区三区中文字幕电影| 久久久噜噜噜久久人人看| 欧美精品在线一区二区三区| 波多野结衣的一区二区三区| 久久66热re国产| 亚洲bt欧美bt精品777| 国产精品美女一区二区三区 | 欧美精品一区二区三区四区| 在线观看成人小视频| 国产成人av福利| 美女爽到高潮91| 视频一区欧美精品| 亚洲欧洲综合另类| 国产人伦精品一区二区| 日韩欧美国产一区二区在线播放| 在线免费观看不卡av| www.亚洲色图| 成人白浆超碰人人人人| 国产精品自拍三区| 久草这里只有精品视频| 日韩精品三区四区| 午夜影院在线观看欧美| 亚洲综合色丁香婷婷六月图片| 国产欧美视频在线观看| 2020日本不卡一区二区视频| 欧美一级午夜免费电影| 欧美日韩一区二区三区高清| 色综合天天视频在线观看 | 91视频精品在这里| 99国产精品99久久久久久| 成人午夜精品在线| 国产精品2024| 国产91在线|亚洲| 盗摄精品av一区二区三区| 国产精品亚洲午夜一区二区三区| 国内久久婷婷综合| 国产精品影视在线观看| 激情综合色丁香一区二区| 久久99日本精品| 国模一区二区三区白浆| 韩国中文字幕2020精品| 国产精品自拍三区| www.日韩大片| 91成人网在线| 欧美日高清视频| 日韩免费高清电影| 精品国产成人系列| 国产校园另类小说区| 国产精品三级av| 亚洲最新视频在线观看| 日本不卡的三区四区五区| 美国十次了思思久久精品导航| 久草中文综合在线| 成人综合在线观看| 日本乱人伦一区| 欧美一卡二卡三卡四卡| 久久综合久久综合九色| 国产精品福利一区二区| 亚洲精品视频一区二区| 亚洲成人自拍一区| 久久国产精品一区二区| 成人av在线资源| 欧美日韩一卡二卡三卡| 日韩丝袜情趣美女图片| 国产精品免费久久| 日韩一区精品视频| 成人做爰69片免费看网站| 欧美三级日韩在线| 国产肉丝袜一区二区| 亚洲国产精品久久一线不卡| 精品一区二区三区在线观看国产| 国产1区2区3区精品美女| 色8久久精品久久久久久蜜| 欧美成人vr18sexvr| 亚洲欧美视频在线观看视频| 免费看欧美美女黄的网站| 丁香六月久久综合狠狠色| 制服丝袜一区二区三区| 国产精品福利一区| 久久福利视频一区二区| 色婷婷激情综合| 精品免费国产二区三区| 一区二区三区欧美| 国产美女精品在线| 欧美肥妇bbw| 国产精品国产自产拍在线| 日本va欧美va精品| 日本精品一区二区三区高清| 欧美一级一区二区| 一区二区高清视频在线观看| 国产在线观看一区二区| 欧美性受xxxx| 欧美国产日韩a欧美在线观看| 日韩国产一二三区| 色视频成人在线观看免| 久久精品视频网| 美腿丝袜亚洲综合| 欧美伊人精品成人久久综合97| 精品国精品国产尤物美女| 亚洲影院理伦片| 91视视频在线观看入口直接观看www | 欧美aaaaaa午夜精品| 色乱码一区二区三区88| 久久精品一区蜜桃臀影院| 日本麻豆一区二区三区视频| 色哟哟在线观看一区二区三区| 久久综合99re88久久爱| 日韩av一区二区在线影视| 一本一道波多野结衣一区二区| 久久精品欧美一区二区三区麻豆| 日本伊人色综合网| 欧美日韩黄视频| 一区二区三区不卡视频在线观看| 国产91丝袜在线播放| www国产成人| 激情偷乱视频一区二区三区| 91精品国产乱码| 秋霞电影一区二区| 欧美一区二区三区在线观看| 亚洲国产一区二区三区| 欧美在线免费视屏| 亚洲综合在线五月| 色老汉一区二区三区| 夜色激情一区二区| 欧美性色综合网| 亚洲国产成人av网| 欧美在线制服丝袜| 亚洲国产欧美在线| 欧美精品久久天天躁| 热久久久久久久| 欧美一级爆毛片| 理论片日本一区| 2024国产精品| 成人免费视频app| 中文字幕亚洲不卡| 色视频一区二区| 天堂蜜桃一区二区三区| 91精品在线一区二区| 久久91精品国产91久久小草 | 欧美高清一级片在线| 七七婷婷婷婷精品国产| 欧美大白屁股肥臀xxxxxx| 国产做a爰片久久毛片| 欧美激情综合五月色丁香小说| 波多野结衣中文字幕一区 | 欧美精品在欧美一区二区少妇| 日产精品久久久久久久性色| 精品毛片乱码1区2区3区| 国产成人av一区二区三区在线观看| 国产精品久久久久婷婷 | 欧美日韩日本视频| 久久成人综合网| 国产精品系列在线| 欧美亚洲一区三区| 男女性色大片免费观看一区二区| 精品国产一区二区三区久久久蜜月 | 美女网站在线免费欧美精品| 久久久国产午夜精品| 91啪九色porn原创视频在线观看| 午夜日韩在线观看|