]> git.proxmox.com Git - mirror_edk2.git/blob - NetworkPkg/Application/IpsecConfig/Indexer.h
NetworkPkg/IpsecConfig: guard the definition of ARRAY_SIZE
[mirror_edk2.git] / NetworkPkg / Application / IpsecConfig / Indexer.h
1 /** @file
2 The internal structure and function declaration to construct ENTRY_INDEXER in
3 IpSecConfig application.
4
5 Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>
6
7 This program and the accompanying materials
8 are licensed and made available under the terms and conditions of the BSD License
9 which accompanies this distribution. The full text of the license may be found at
10 http://opensource.org/licenses/bsd-license.php.
11
12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
14
15 **/
16
17 #ifndef _INDEXER_H_
18 #define _INDEXER_H_
19
20 typedef struct {
21 UINT8 Name[MAX_PEERID_LEN];
22 UINTN Index; // Used only if Name buffer is filled with zero.
23 } SPD_ENTRY_INDEXER;
24
25 typedef struct {
26 EFI_IPSEC_SA_ID SaId;
27 UINTN Index;
28 } SAD_ENTRY_INDEXER;
29
30 typedef struct {
31 EFI_IPSEC_PAD_ID PadId;
32 UINTN Index;
33 } PAD_ENTRY_INDEXER;
34
35 typedef union {
36 SPD_ENTRY_INDEXER Spd;
37 SAD_ENTRY_INDEXER Sad;
38 PAD_ENTRY_INDEXER Pad;
39 } POLICY_ENTRY_INDEXER;
40
41 /**
42 The prototype for the ConstructSpdIndexer()/ConstructSadIndexer()/ConstructPadIndexer().
43 Fill in SPD_ENTRY_INDEXER/SAD_ENTRY_INDEXER/PAD_ENTRY_INDEXER through ParamPackage list.
44
45 @param[in, out] Indexer The pointer to the POLICY_ENTRY_INDEXER union.
46 @param[in] ParamPackage The pointer to the ParamPackage list.
47
48 @retval EFI_SUCCESS Filled in POLICY_ENTRY_INDEXER successfully.
49 **/
50 typedef
51 EFI_STATUS
52 (* CONSTRUCT_POLICY_ENTRY_INDEXER) (
53 IN POLICY_ENTRY_INDEXER *Indexer,
54 IN LIST_ENTRY *ParamPackage
55 );
56
57 extern CONSTRUCT_POLICY_ENTRY_INDEXER mConstructPolicyEntryIndexer[];
58 #endif