/** @file
  Include file for platform variable cleanup HII.

Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent

**/

#pragma once

//
// {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
