summaryrefslogtreecommitdiffstats
path: root/NetworkPkg/Application/IpsecConfig/Indexer.h
blob: b26e931c7342e323a9ed6372b7fa306178510e25 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/** @file
  The internal structure and function declaration to construct ENTRY_INDEXER in
  IpSecConfig application.

  Copyright (c) 2009 - 2016, Intel Corporation. All rights reserved.<BR>

  SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef _INDEXER_H_
#define _INDEXER_H_

typedef struct {
  UINT8    Name[MAX_PEERID_LEN];
  UINTN    Index;    // Used only if Name buffer is filled with zero.
} SPD_ENTRY_INDEXER;

typedef struct {
  EFI_IPSEC_SA_ID    SaId;
  UINTN              Index;
} SAD_ENTRY_INDEXER;

typedef struct {
  EFI_IPSEC_PAD_ID    PadId;
  UINTN               Index;
} PAD_ENTRY_INDEXER;

typedef union {
  SPD_ENTRY_INDEXER    Spd;
  SAD_ENTRY_INDEXER    Sad;
  PAD_ENTRY_INDEXER    Pad;
} POLICY_ENTRY_INDEXER;

/**
  The prototype for the ConstructSpdIndexer()/ConstructSadIndexer()/ConstructPadIndexer().
  Fill in SPD_ENTRY_INDEXER/SAD_ENTRY_INDEXER/PAD_ENTRY_INDEXER through ParamPackage list.

  @param[in, out] Indexer         The pointer to the POLICY_ENTRY_INDEXER union.
  @param[in]      ParamPackage    The pointer to the ParamPackage list.

  @retval EFI_SUCCESS    Filled in POLICY_ENTRY_INDEXER successfully.
**/
typedef
EFI_STATUS
(* CONSTRUCT_POLICY_ENTRY_INDEXER) (
  IN POLICY_ENTRY_INDEXER    *Indexer,
  IN LIST_ENTRY              *ParamPackage
);

extern CONSTRUCT_POLICY_ENTRY_INDEXER mConstructPolicyEntryIndexer[];
#endif