]> git.proxmox.com Git - mirror_edk2.git/blob - EdkCompatibilityPkg/Foundation/Efi/Protocol/ServiceBinding/ServiceBinding.h
Add in the 1st version of ECP.
[mirror_edk2.git] / EdkCompatibilityPkg / Foundation / Efi / Protocol / ServiceBinding / ServiceBinding.h
1 /*++
2
3 Copyright (c) 2005, Intel Corporation
4 All rights reserved. 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 typedef struct _EFI_SERVICE_BINDING_PROTOCOL {
84 EFI_SERVICE_BINDING_CREATE_CHILD CreateChild;
85 EFI_SERVICE_BINDING_DESTROY_CHILD DestroyChild;
86 } EFI_SERVICE_BINDING_PROTOCOL;
87
88 #endif