1/*-
2 * SPDX-License-Identifier: BSD-2-Clause
3 *
4 * Copyright 2006 - 2016 Unified EFI, Inc.<BR>
5 * Copyright (c) 2013 - 2016, Intel Corporation. All rights reserved.<BR>
6 * This program and the accompanying materials
7 * are licensed and made available under the terms and conditions of the BSD License
8 * which accompanies this distribution.  The full text of the license may be found at
9 * http://opensource.org/licenses/bsd-license.php
10 *
11 * THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
13 *
14 */
15
16#ifndef _EFIRNG_H
17#define _EFIRNG_H
18
19#define EFI_RNG_PROTOCOL_GUID \
20    { 0x3152bca5, 0xeade, 0x433d, {0x86, 0x2e, 0xc0, 0x1c, 0xdc, 0x29, 0x1f, 0x44} }
21
22INTERFACE_DECL(_EFI_RNG_PROTOCOL);
23
24typedef EFI_GUID EFI_RNG_ALGORITHM;
25
26typedef
27EFI_STATUS
28(EFIAPI *EFI_RNG_GET_INFO) (
29    IN struct _EFI_RNG_PROTOCOL		*This,
30    IN  OUT UINTN			*RNGAlgorithmListSize,
31    OUT EFI_RNG_ALGORITHM		*RNGAlgorithmList
32    );
33
34typedef
35EFI_STATUS
36(EFIAPI *EFI_RNG_GET_RNG) (
37    IN struct _EFI_RNG_PROTOCOL		*This,
38    IN EFI_RNG_ALGORITHM		*RNGAlgorithm, OPTIONAL
39    IN UINTN				RNGValueLength,
40    OUT UINT8				*RNGValue
41    );
42
43typedef struct _EFI_RNG_PROTOCOL {
44	EFI_RNG_GET_INFO	GetInfo;
45	EFI_RNG_GET_RNG		GetRNG;
46} EFI_RNG_PROTOCOL;
47
48static EFI_GUID			rng_guid = EFI_RNG_PROTOCOL_GUID;
49
50#endif /* _EFIRNG_H */
51