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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? list.cxx

?? EFI(Extensible Firmware Interface)是下一代BIOS
?? CXX
字號:
/*++

Copyright (c) 1991-1999 Microsoft Corporation

Module Name:

    list.cxx

--*/

#include <pch.cxx>

#define _ULIB_MEMBER_
#include "ulib.hxx"
#include "list.hxx"
#include "listit.hxx"


DEFINE_EXPORTED_CONSTRUCTOR( LIST, SEQUENTIAL_CONTAINER, ULIB_EXPORT );

VOID
LIST::Construct(
    )
/*++

Routine Description:

    This routine initializes the object to a default state.

Arguments:

    None.

Return Value:

    None.

--*/
{
    _head = NULL;
    _tail = NULL;
    _count = 0;
}


VOID
LIST::Destroy(
    )
/*++

Routine Description:

    This routine returns the object to a default state.

Arguments:

    None.

Return Value:

    None.

--*/
{
    _head = NULL;
    _tail = NULL;
    _count = 0;
}


ULIB_EXPORT
LIST::~LIST(
    )
/*++

Routine Description:

    Destructor for LIST.

Arguments:

    None.

Return Value:

    None.

--*/
{
    Destroy();
}


ULIB_EXPORT
BOOLEAN
LIST::Initialize(
    )
/*++

Routine Description:

    This routine initializes the object to a valid initial state.

Arguments:

    None.

Return Value:

    FALSE   - Failure.
    TRUE    - Success.

--*/
{
    Destroy();

    if (!_mem_block_mgr.Initialize(sizeof(OBJECT_LIST_NODE))) {
        Destroy();
        return FALSE;
    }

    return TRUE;
}


ULONG
LIST::QueryMemberCount(
    ) CONST
/*++

Routine Description:

    This routine computes the number of members in the list.

Arguments:

    None.

Return Value:

    The number of members in the list.

--*/
{
    return _count;
}


ULIB_EXPORT
BOOLEAN
LIST::Put(
    IN  POBJECT Member
    )
/*++

Routine Description:

    This routine adds a new member to the end of the list.

Arguments:

    Member  - Supplies the element to add to the list.

Return Value:

    FALSE   - Failure.
    TRUE    - Success.

--*/
{
    if (!_tail) {

        if (!(_head = _tail = (POBJECT_LIST_NODE) _mem_block_mgr.Alloc())) {
            return FALSE;
        }

        _head->next = _head->prev = NULL;
        _head->data = Member;

        _count++;
        return TRUE;
    }

    if (!(_tail->next = (POBJECT_LIST_NODE) _mem_block_mgr.Alloc())) {
        return FALSE;
    }

    _tail->next->prev = _tail;
    _tail = _tail->next;

    _tail->next = NULL;
    _tail->data = Member;

    _count++;
    return TRUE;
}


POBJECT
LIST::Remove(
    IN OUT  PITERATOR   Position
    )
/*++

Routine Description:

    This routine removes the element at the specified position from the
    list.  The iterator is left pointing at the following element in
    the list.

Arguments:

    Position    - Supplies a pointer to the element to remove.

Return Value:

    A pointer to the element removed.

--*/
{
    POBJECT_LIST_NODE   p;
    PLIST_ITERATOR      piter;
    POBJECT             pobj;

    DebugAssert(LIST_ITERATOR::Cast(Position));

    if (!(piter = (PLIST_ITERATOR) Position) || !(p = piter->_current)) {
        return NULL;
    }

    if (p->next) {
        p->next->prev = p->prev;
    }

    if (p->prev) {
        p->prev->next = p->next;
    }

    if (_head == p) {
        _head = p->next;
    }

    if (_tail == p) {
        _tail = p->prev;
    }

    piter->_current = p->next;

    pobj = p->data;

    _mem_block_mgr.Free(p);

    _count--;

    return pobj;
}


ULIB_EXPORT
PITERATOR
LIST::QueryIterator(
    ) CONST
/*++

Routine Description:

    This routine returns an iterator for this list.

Arguments:

    None.

Return Value:

    A valid iterator.

--*/
{
    PLIST_ITERATOR  p;

    if (!(p = NEW LIST_ITERATOR)) {
        return NULL;
    }

    p->Initialize(this);

    return p;
}


ULIB_EXPORT
BOOLEAN
LIST::Insert(
    IN OUT  POBJECT     Member,
    IN OUT  PITERATOR   Position
    )
/*++

Routine Description:

    This routine inserts a new element before the specified position.
    The 'Position' continues to point to the same element.

Arguments:

    Member      - Supplies the element to insert.
    Position    - Supplies the point at which to insert this member.

Return Value:

    FALSE   - Failure.
    TRUE    - Success.

--*/
{
    POBJECT_LIST_NODE   p, current;

    DebugAssert(LIST_ITERATOR::Cast(Position));

    current = ((PLIST_ITERATOR) Position)->_current;

    if (!current) {
        return Put(Member);
    }

    if (!(p = (POBJECT_LIST_NODE) _mem_block_mgr.Alloc())) {
        return FALSE;
    }

    _count++;
    p->data = Member;

    if (current == _head) {
        _head = p;
    }

    p->next = current;
    p->prev = current->prev;
    current->prev = p;

    if (p->prev) {
        p->prev->next = p;
    }

    return TRUE;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久www免费人成精品| 欧美吻胸吃奶大尺度电影| 91性感美女视频| 精品国产乱子伦一区| 亚洲情趣在线观看| 国产一区二区影院| 日韩区在线观看| 亚洲高清免费视频| 色综合久久久久久久久久久| 欧美电影免费提供在线观看| 亚洲精品久久久蜜桃| 成人午夜免费视频| 国产亚洲成av人在线观看导航 | 日韩一区精品视频| 91视频国产观看| 国产精品色婷婷久久58| 国产精品1区2区| 精品国产乱码久久| 精品夜夜嗨av一区二区三区| 91麻豆精品91久久久久久清纯| 亚洲在线一区二区三区| 在线视频欧美区| 亚洲精品中文字幕在线观看| av在线不卡免费看| 中文字幕一区二区三区乱码在线| 懂色av一区二区在线播放| 欧美精品一区二区三区久久久 | 成人永久免费视频| 久久久久久免费毛片精品| 久久福利视频一区二区| 欧美美女bb生活片| 免费高清视频精品| 日韩欧美视频一区| 狠狠色综合日日| 国产日韩欧美亚洲| 成人99免费视频| 亚洲精品中文字幕在线观看| 91搞黄在线观看| 偷拍一区二区三区| 欧美精品日韩一本| 免费看日韩精品| 久久精品夜色噜噜亚洲a∨| 国产精品综合视频| 国产精品伦理在线| 91热门视频在线观看| 一区二区欧美国产| 欧美一卡2卡3卡4卡| 精品一区二区三区的国产在线播放| 欧美精品一区二区三区在线播放 | 日韩欧美国产wwwww| 国产综合色产在线精品| 久久精品一二三| 91黄色激情网站| 日韩二区三区在线观看| 久久精品视频在线看| 91视频xxxx| 秋霞电影网一区二区| 国产片一区二区| 色偷偷成人一区二区三区91| 婷婷开心久久网| 国产亚洲自拍一区| 欧美日韩国产小视频在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 欧美国产精品一区二区三区| 欧美综合天天夜夜久久| 蜜臀av一区二区在线免费观看| 久久久www免费人成精品| 日本精品视频一区二区| 狠狠狠色丁香婷婷综合激情| 亚洲色图色小说| 精品88久久久久88久久久| 在线一区二区视频| 国产精品1024久久| 亚洲成av人片一区二区梦乃| 国产日韩欧美综合在线| 在线成人小视频| 成人国产精品免费观看动漫| 日日嗨av一区二区三区四区| 国产精品久久久久婷婷| 91精品婷婷国产综合久久性色| 成人av电影在线| 国产一区二区三区美女| 亚洲成人资源在线| 亚洲三级在线免费观看| 久久亚洲春色中文字幕久久久| 欧美吻胸吃奶大尺度电影| 成人av中文字幕| 国产裸体歌舞团一区二区| 男人的天堂亚洲一区| 亚洲午夜激情av| 亚洲欧美日韩国产一区二区三区| 久久综合色婷婷| 欧美一二区视频| 欧美伦理影视网| 欧美亚洲一区二区三区四区| 99免费精品在线观看| 国产成人在线免费| 国产一区二区91| 国产麻豆精品在线| 国产麻豆视频一区二区| 久久精品噜噜噜成人av农村| 日韩在线a电影| 日韩—二三区免费观看av| 亚洲一二三区在线观看| 一区二区视频免费在线观看| 亚洲色图丝袜美腿| 亚洲欧美日韩国产手机在线| 国产精品久久福利| 中文字幕一区二区三| 中文字幕日本不卡| 亚洲色图欧洲色图| 一区二区三区日韩精品| 亚洲一级片在线观看| 亚洲成人777| 日韩国产欧美视频| 日韩和的一区二区| 麻豆精品视频在线观看免费| 日韩va亚洲va欧美va久久| 久久精品国产999大香线蕉| 久久国产欧美日韩精品| 国产一区中文字幕| 成人黄色小视频| 91国产精品成人| 在线播放欧美女士性生活| 日韩三级视频在线观看| 久久久久97国产精华液好用吗| 国产日韩影视精品| 国产精品久久久久一区二区三区| 日韩理论片网站| 图片区小说区国产精品视频| 精品一区二区三区免费播放| 国产成人在线看| 91黄色激情网站| 精品噜噜噜噜久久久久久久久试看 | 成人午夜在线免费| 在线亚洲欧美专区二区| 欧美日韩1区2区| 久久精品一级爱片| 亚洲一区免费在线观看| 蜜臀精品久久久久久蜜臀| 成人小视频免费观看| 欧美伦理电影网| 久久精品在线免费观看| 亚洲最大色网站| 激情都市一区二区| 91久久免费观看| 久久综合资源网| 一个色在线综合| 国产精品一区二区在线观看不卡 | 成人免费毛片a| 欧美日韩精品欧美日韩精品一综合| 精品国产伦理网| 亚洲综合激情小说| 国产一区二区三区免费播放| 91福利资源站| 中文字幕av资源一区| 日本最新不卡在线| 北条麻妃一区二区三区| 日韩欧美色综合| 亚洲狠狠爱一区二区三区| 国产精品66部| 91精品国产欧美一区二区| 亚洲色图丝袜美腿| 国产精品1区2区3区在线观看| 欧美日韩精品二区第二页| 中文在线一区二区| 精品在线播放免费| 欧美日韩国产一级二级| 亚洲欧美国产三级| 国产一区二区三区在线观看免费 | 国产精品成人午夜| 国内外成人在线视频| 欧美肥大bbwbbw高潮| 亚洲精品国产精品乱码不99| 丁香亚洲综合激情啪啪综合| 欧美视频中文字幕| 1024成人网| 成人精品视频网站| 久久人人爽人人爽| 久久电影网电视剧免费观看| 制服视频三区第一页精品| 亚洲一区二区不卡免费| 日本高清免费不卡视频| 亚洲欧洲99久久| 99精品欧美一区二区蜜桃免费 | 亚洲国产裸拍裸体视频在线观看乱了| 国产精品一区二区91| 欧美xxxxxxxx| 免费国产亚洲视频| 欧美一区二区成人6969| 天天操天天综合网| 欧美人妇做爰xxxⅹ性高电影| 亚洲一区二区视频| 精品视频一区二区三区免费| 亚洲一区二区三区四区在线| 色激情天天射综合网| 亚洲最大色网站| 欧美日本一道本在线视频| 日韩国产一区二| www国产精品av|