1// Copyright (c) 2013 The Chromium OS Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef VBOOT_REFERENCE_CGPT_CGPT_PARAMS_H_ 6#define VBOOT_REFERENCE_CGPT_CGPT_PARAMS_H_ 7#include <stdint.h> 8 9#include "gpt.h" 10 11enum { 12 CGPT_OK = 0, 13 CGPT_FAILED, 14}; 15 16typedef struct CgptCreateParams { 17 char *drive_name; 18 uint64_t drive_size; 19 int zap; 20 uint64_t padding; 21} CgptCreateParams; 22 23typedef struct CgptAddParams { 24 char *drive_name; 25 uint64_t drive_size; 26 uint32_t partition; 27 uint64_t begin; 28 uint64_t size; 29 Guid type_guid; 30 Guid unique_guid; 31 char *label; 32 int successful; 33 int tries; 34 int priority; 35 uint32_t raw_value; 36 int set_begin; 37 int set_size; 38 int set_type; 39 int set_unique; 40 int set_successful; 41 int set_tries; 42 int set_priority; 43 int set_raw; 44} CgptAddParams; 45 46typedef struct CgptShowParams { 47 char *drive_name; 48 uint64_t drive_size; 49 int numeric; 50 int verbose; 51 int quick; 52 uint32_t partition; 53 int single_item; 54 int debug; 55 int num_partitions; 56} CgptShowParams; 57 58typedef struct CgptRepairParams { 59 char *drive_name; 60 uint64_t drive_size; 61 int verbose; 62} CgptRepairParams; 63 64typedef struct CgptBootParams { 65 char *drive_name; 66 uint64_t drive_size; 67 uint32_t partition; 68 char *bootfile; 69 int create_pmbr; 70} CgptBootParams; 71 72typedef struct CgptPrioritizeParams { 73 char *drive_name; 74 uint64_t drive_size; 75 uint32_t set_partition; 76 int set_friends; 77 int max_priority; 78 int orig_priority; 79} CgptPrioritizeParams; 80 81struct CgptFindParams; 82typedef void (*CgptFindShowFn)(struct CgptFindParams *params, char *filename, 83 int partnum, GptEntry *entry); 84typedef struct CgptFindParams { 85 char *drive_name; 86 uint64_t drive_size; 87 int verbose; 88 int set_unique; 89 int set_type; 90 int set_label; 91 int oneonly; 92 int numeric; 93 uint8_t *matchbuf; 94 uint64_t matchlen; 95 uint64_t matchoffset; 96 uint8_t *comparebuf; 97 Guid unique_guid; 98 Guid type_guid; 99 char *label; 100 int hits; 101 int match_partnum; /* 1-based; 0 means no match */ 102 /* when working with MTD, we actually work on a temp file, but we still need 103 * to print the device name. so this parameter is here to properly show the 104 * correct device name in that special case. */ 105 CgptFindShowFn show_fn; 106} CgptFindParams; 107 108typedef struct CgptLegacyParams { 109 char *drive_name; 110 uint64_t drive_size; 111 int efipart; 112} CgptLegacyParams; 113 114#endif // VBOOT_REFERENCE_CGPT_CGPT_PARAMS_H_ 115