Home | History | Annotate | Download | only in ServiceBinding
      1 /*++
      2 
      3 Copyright (c) 2005, Intel Corporation. All rights reserved.<BR>
      4 This program and the accompanying materials
      5 are licensed and made available under the terms and conditions of the BSD License
      6 which accompanies this distribution.  The full text of the license may be found at
      7 http://opensource.org/licenses/bsd-license.php
      8 
      9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     11 
     12 Module Name:
     13 
     14   ServiceBinding.h
     15 
     16 Abstract:
     17 
     18   UEFI Service Binding protocol definition.
     19 
     20 --*/
     21 
     22 #ifndef _EFI_SERVICE_BINDING_H_
     23 #define _EFI_SERVICE_BINDING_H_
     24 
     25 //
     26 // Forward reference for pure ANSI compatability
     27 //
     28 EFI_FORWARD_DECLARATION (EFI_SERVICE_BINDING_PROTOCOL);
     29 
     30 typedef
     31 EFI_STATUS
     32 (EFIAPI *EFI_SERVICE_BINDING_CREATE_CHILD) (
     33   IN     EFI_SERVICE_BINDING_PROTOCOL  *This,
     34   IN OUT EFI_HANDLE                    *ChildHandle
     35   )
     36 /*++
     37 
     38   Routine Description:
     39     Creates a child handle with a set of I/O services.
     40 
     41   Arguments:
     42     This         - Protocol instance pointer.
     43     ChildHandle  - Pointer to the handle of the child to create.  If it is NULL,
     44                    then a new handle is created.  If it is not NULL, then the
     45                    I/O services are added to the existing child handle.
     46 
     47   Returns:
     48     EFI_SUCCES           - The child handle was created with the I/O services.
     49     EFI_OUT_OF_RESOURCES - There are not enough resources availabe to create
     50                            the child.
     51     other                - The child handle was not created.
     52 
     53 --*/
     54 ;
     55 
     56 typedef
     57 EFI_STATUS
     58 (EFIAPI *EFI_SERVICE_BINDING_DESTROY_CHILD) (
     59   IN struct _EFI_SERVICE_BINDING_PROTOCOL  *This,
     60   IN EFI_HANDLE                            ChildHandle
     61   )
     62 /*++
     63 
     64   Routine Description:
     65     Destroys a child handle with a set of I/O services.
     66 
     67   Arguments:
     68     This         - Protocol instance pointer.
     69     ChildHandle  - Handle of the child to destroy.
     70 
     71   Returns:
     72     EFI_SUCCES            - The I/O services were removed from the child handle.
     73     EFI_UNSUPPORTED       - The child handle does not support the I/O services
     74                             that are being removed.
     75     EFI_INVALID_PARAMETER - Child handle is not a valid EFI Handle.
     76     EFI_ACCESS_DENIED     - The child handle could not be destroyed because its
     77                             I/O services are being used.
     78     other                 - The child handle was not destroyed.
     79 
     80 --*/
     81 ;
     82 
     83 struct _EFI_SERVICE_BINDING_PROTOCOL {
     84   EFI_SERVICE_BINDING_CREATE_CHILD   CreateChild;
     85   EFI_SERVICE_BINDING_DESTROY_CHILD  DestroyChild;
     86 };
     87 
     88 #endif
     89