mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2024-11-27 12:15:19 +01:00
e05286e4a4
There is some cleaning to do in the hierarchy of REFIT_ABSTRACT_MENU_ENTRY.
141 lines
4.7 KiB
C
141 lines
4.7 KiB
C
///*
|
|
// * refit/list.c
|
|
// * list manager functions
|
|
// *
|
|
// * Copyright (c) 2013 Cadet-petit Armel
|
|
// * All rights reserved.
|
|
// *
|
|
// * Redistribution and use in source and binary forms, with or without
|
|
// * modification, are permitted provided that the following conditions are
|
|
// * met:
|
|
// *
|
|
// * * Redistributions of source code must retain the above copyright
|
|
// * notice, this list of conditions and the following disclaimer.
|
|
// *
|
|
// * * Redistributions in binary form must reproduce the above copyright
|
|
// * notice, this list of conditions and the following disclaimer in the
|
|
// * documentation and/or other materials provided with the
|
|
// * distribution.
|
|
// *
|
|
// * * Neither the name of Cadet-petit Armel nor the names of the
|
|
// * contributors may be used to endorse or promote products derived
|
|
// * from this software without specific prior written permission.
|
|
// *
|
|
// * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
// * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
// * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
// * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
// * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
// * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
// * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
// * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
// * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
// * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
// * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
// */
|
|
//
|
|
//#ifndef __REFITLIST_STANDARD_H__
|
|
//#define __REFITLIST_STANDARD_H__
|
|
//
|
|
//
|
|
//#include "libeg.h"
|
|
//
|
|
////
|
|
//// NOTE: To avoid a duplicate symbol error, with the lib.c AddListElement
|
|
//// do not remove this quote !!!
|
|
////
|
|
////#define RELEASE_LIST
|
|
//
|
|
////
|
|
//// Refit Elements Linked List Signature.
|
|
////
|
|
//#define REFIT_LIST_SIGNATURE SIGNATURE_32 ('R', 'E', 'L', 'L')
|
|
//
|
|
////
|
|
//// Refit Elements Linked List Constructor Type.
|
|
////
|
|
//typedef
|
|
//EFI_STATUS
|
|
//(EFIAPI *LIST_ELEMENT_CONSTRUCTOR) (
|
|
// IN OUT VOID **Element,
|
|
// IN OUT VOID *Parameters
|
|
// );
|
|
//
|
|
////
|
|
//// Refit Elements Linked List Destructor Type.
|
|
////
|
|
//typedef
|
|
//EFI_STATUS
|
|
//(EFIAPI *LIST_ELEMENT_DESTRUCTOR) (
|
|
// IN VOID **Element
|
|
// );
|
|
//
|
|
////
|
|
//// Refit Elements Linked List Entry definition.
|
|
////
|
|
//// Signature must be set to REFIT_LIST_SIGNATURE
|
|
//// Link is the linked list data.
|
|
//// Element is a pointer to the Element.
|
|
//// Constuctor is a pointer to the Element's constructor function.
|
|
//// Destructor is a pointer to the Element's destructor function.
|
|
//// ConstructorParameters is the to pass to the constructor.
|
|
//// Handle is used to identify a particular Element.
|
|
////
|
|
//typedef struct {
|
|
// UINT32 Signature;
|
|
// LIST_ENTRY Link;
|
|
// VOID *Element;
|
|
// LIST_ELEMENT_CONSTRUCTOR Constructor;
|
|
// LIST_ELEMENT_DESTRUCTOR Destructor;
|
|
// VOID *ConstructorParameters;
|
|
// UINTN Handle;
|
|
//} REFIT_LIST;
|
|
//
|
|
//
|
|
//EFI_STATUS
|
|
//CreateListElement(IN OUT LIST_ENTRY *List);
|
|
//
|
|
//#ifdef RELEASE_LIST
|
|
//EFI_STATUS
|
|
//AddListElement(
|
|
// IN OUT LIST_ENTRY *List,
|
|
// IN VOID *Element,
|
|
// IN OUT UINTN *CurrentHandle,
|
|
// IN LIST_ELEMENT_CONSTRUCTOR Constructor OPTIONAL,
|
|
// IN LIST_ELEMENT_DESTRUCTOR Destructor OPTIONAL,
|
|
// IN VOID *ConstructorParameters OPTIONAL
|
|
// );
|
|
//#else
|
|
//EFI_STATUS
|
|
//Add_ListElement(
|
|
// IN OUT LIST_ENTRY *List,
|
|
// IN VOID *Element,
|
|
// IN OUT UINTN *CurrentHandle,
|
|
// IN LIST_ELEMENT_CONSTRUCTOR Constructor OPTIONAL,
|
|
// IN LIST_ELEMENT_DESTRUCTOR Destructor OPTIONAL,
|
|
// IN VOID *ConstructorParameters OPTIONAL
|
|
//
|
|
// );
|
|
//#endif
|
|
//
|
|
//LIST_ENTRY *
|
|
//FindElementByHandle(
|
|
// IN LIST_ENTRY *List,
|
|
// IN CONST UINTN Handle
|
|
// );
|
|
//
|
|
//
|
|
//EFI_STATUS
|
|
//RemoveElementByHandle(
|
|
// IN OUT LIST_ENTRY *List,
|
|
// IN CONST UINTN Handle
|
|
// );
|
|
//
|
|
//
|
|
//EFI_STATUS
|
|
//FreeListElement(IN OUT LIST_ENTRY *List);
|
|
//
|
|
//
|
|
//#endif
|
|
///* EOF */
|