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