CloverBootloader/rEFIt_UEFI/refit/list.h
jief e05286e4a4 Big big refactoring of REFIT_MENU structs. They are now objects.
There is some cleaning to do
in the hierarchy of REFIT_ABSTRACT_MENU_ENTRY.
2020-02-28 23:28:33 +03:00

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 */