mirror of
https://github.com/HyperDbg/HyperDbg.git
synced 2026-08-22 23:14:59 +00:00
65 lines
1.2 KiB
C++
65 lines
1.2 KiB
C++
/**
|
|
* @file list.cpp
|
|
* @author Sina Karvandi (sina@rayanfam.com)
|
|
* @brief The list working functions headers
|
|
* @details
|
|
* @version 0.1
|
|
* @date 2020-04-11
|
|
*
|
|
* @copyright This project is released under the GNU Public License v3.
|
|
*
|
|
*/
|
|
#include "pch.h"
|
|
|
|
/**
|
|
* @brief List initializer
|
|
*
|
|
* @param ListHead
|
|
*/
|
|
void InitializeListHead(PLIST_ENTRY ListHead) {
|
|
ListHead->Flink = ListHead->Blink = ListHead;
|
|
}
|
|
|
|
/**
|
|
* @brief insert entry to the top of the list
|
|
*
|
|
* @param ListHead
|
|
* @param Entry
|
|
*/
|
|
void InsertHeadList(PLIST_ENTRY ListHead, PLIST_ENTRY Entry) {
|
|
|
|
PLIST_ENTRY Flink;
|
|
|
|
Flink = ListHead->Flink;
|
|
Entry->Flink = Flink;
|
|
Entry->Blink = ListHead;
|
|
Flink->Blink = Entry;
|
|
ListHead->Flink = Entry;
|
|
}
|
|
|
|
/**
|
|
* @brief remove the entry from the list
|
|
*
|
|
* @param Entry
|
|
* @return BOOLEAN
|
|
*/
|
|
BOOLEAN
|
|
RemoveEntryList(PLIST_ENTRY Entry) {
|
|
|
|
PLIST_ENTRY PrevEntry;
|
|
PLIST_ENTRY NextEntry;
|
|
|
|
NextEntry = Entry->Flink;
|
|
PrevEntry = Entry->Blink;
|
|
if ((NextEntry->Blink != Entry) || (PrevEntry->Flink != Entry)) {
|
|
|
|
//
|
|
// Error
|
|
//
|
|
_CrtDbgBreak();
|
|
}
|
|
|
|
PrevEntry->Flink = NextEntry;
|
|
NextEntry->Blink = PrevEntry;
|
|
return (BOOLEAN)(PrevEntry == NextEntry);
|
|
}
|