/** @file
  Include file for platform variable cleanup HII.

Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#ifndef _PLAT_VAR_CLEANUP_HII_
#define _PLAT_VAR_CLEANUP_HII_

//
// {24F14D8A-D7A8-4991-91E0-96C3B7DB8456}
//
#define VARIABLE_CLEANUP_HII_GUID \
  { \
    0x24f14d8a, 0xd7a8, 0x4991, { 0x91, 0xe0, 0x96, 0xc3, 0xb7, 0xdb, 0x84, 0x56 } \
  }

#define MAX_USER_VARIABLE_COUNT  0x1000

typedef struct {
  UINT8    SelectAll;
  //
  // FALSE is to not delete, TRUE is to delete.
  //
  UINT8    UserVariable[MAX_USER_VARIABLE_COUNT];
} VARIABLE_CLEANUP_DATA;

#define VARIABLE_CLEANUP_VARSTORE_ID  0x8000

//
// Field offset of structure VARIABLE_CLEANUP_DATA
//
#define VAR_OFFSET(Field)  ((UINTN) &(((VARIABLE_CLEANUP_DATA *) 0)->Field))
#define USER_VARIABLE_VAR_OFFSET  (VAR_OFFSET (UserVariable))

#define FORM_ID_VARIABLE_CLEANUP  0x8000

#define LABEL_START  0x0000
#define LABEL_END    0xFFFF

#define SELECT_ALL_QUESTION_ID        0x7FFD
#define SAVE_AND_EXIT_QUESTION_ID     0x7FFE
#define NO_SAVE_AND_EXIT_QUESTION_ID  0x7FFF

//
// Tool automatic generated Question Id start from 1.
// In order to avoid to conflict them, the user variable QuestionID offset is defined from 0x8000.
//
#define USER_VARIABLE_QUESTION_ID  0x8000

#endif
