/** @file The internal structure and function declaration of the implementation to go through each entry in IpSecConfig application. Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR> This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License which accompanies this distribution. The full text of the license may be found at http://opensource.org/licenses/bsd-license.php. THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. **/ #ifndef _FOREACH_H_ #define _FOREACH_H_ /** The prototype for the DumpSpdEntry()/DumpSadEntry()/DumpPadEntry(). Print EFI_IPSEC_CONFIG_SELECTOR and corresponding content. @param[in] Selector The pointer to the EFI_IPSEC_CONFIG_SELECTOR union. @param[in] Data The pointer to the corresponding data. @param[in] Context The pointer to the Index in SPD/SAD/PAD Database. @retval EFI_SUCCESS Dump SPD/SAD/PAD information successfully. **/ typedef EFI_STATUS (*VISIT_POLICY_ENTRY) ( IN EFI_IPSEC_CONFIG_SELECTOR *Selector, IN VOID *Data, IN VOID *Context ); /** Enumerate all entry in the database to execute a specified operation according to datatype. @param[in] DataType The value of EFI_IPSEC_CONFIG_DATA_TYPE. @param[in] Routine The pointer to function of a specified operation. @param[in] Context The pointer to the context of a function. @retval EFI_SUCCESS Execute specified operation successfully. **/ EFI_STATUS ForeachPolicyEntry ( IN EFI_IPSEC_CONFIG_DATA_TYPE DataType, IN VISIT_POLICY_ENTRY Routine, IN VOID *Context ); #endif