xref: /aosp_15_r20/external/vboot_reference/host/include/cgpt_params.h (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1*8617a60dSAndroid Build Coastguard Worker /* Copyright 2013 The ChromiumOS Authors
2*8617a60dSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
3*8617a60dSAndroid Build Coastguard Worker  * found in the LICENSE file.
4*8617a60dSAndroid Build Coastguard Worker  */
5*8617a60dSAndroid Build Coastguard Worker 
6*8617a60dSAndroid Build Coastguard Worker #ifndef VBOOT_REFERENCE_CGPT_PARAMS_H_
7*8617a60dSAndroid Build Coastguard Worker #define VBOOT_REFERENCE_CGPT_PARAMS_H_
8*8617a60dSAndroid Build Coastguard Worker 
9*8617a60dSAndroid Build Coastguard Worker #include <stdint.h>
10*8617a60dSAndroid Build Coastguard Worker 
11*8617a60dSAndroid Build Coastguard Worker #include "gpt.h"
12*8617a60dSAndroid Build Coastguard Worker 
13*8617a60dSAndroid Build Coastguard Worker #ifdef __cplusplus
14*8617a60dSAndroid Build Coastguard Worker extern "C" {
15*8617a60dSAndroid Build Coastguard Worker #endif  /* __cplusplus */
16*8617a60dSAndroid Build Coastguard Worker 
17*8617a60dSAndroid Build Coastguard Worker enum {
18*8617a60dSAndroid Build Coastguard Worker 	CGPT_OK = 0,
19*8617a60dSAndroid Build Coastguard Worker 	CGPT_FAILED,
20*8617a60dSAndroid Build Coastguard Worker };
21*8617a60dSAndroid Build Coastguard Worker 
22*8617a60dSAndroid Build Coastguard Worker typedef struct CgptCreateParams {
23*8617a60dSAndroid Build Coastguard Worker 	const char *drive_name;
24*8617a60dSAndroid Build Coastguard Worker 	uint64_t drive_size;
25*8617a60dSAndroid Build Coastguard Worker 	int zap;
26*8617a60dSAndroid Build Coastguard Worker 	uint64_t padding;
27*8617a60dSAndroid Build Coastguard Worker } CgptCreateParams;
28*8617a60dSAndroid Build Coastguard Worker 
29*8617a60dSAndroid Build Coastguard Worker typedef struct CgptAddParams {
30*8617a60dSAndroid Build Coastguard Worker 	const char *drive_name;
31*8617a60dSAndroid Build Coastguard Worker 	uint64_t drive_size;
32*8617a60dSAndroid Build Coastguard Worker 	uint32_t partition;
33*8617a60dSAndroid Build Coastguard Worker 	uint64_t begin;
34*8617a60dSAndroid Build Coastguard Worker 	uint64_t size;
35*8617a60dSAndroid Build Coastguard Worker 	Guid type_guid;
36*8617a60dSAndroid Build Coastguard Worker 	Guid unique_guid;
37*8617a60dSAndroid Build Coastguard Worker 	const char *label;
38*8617a60dSAndroid Build Coastguard Worker 	int error_counter;
39*8617a60dSAndroid Build Coastguard Worker 	int successful;
40*8617a60dSAndroid Build Coastguard Worker 	int tries;
41*8617a60dSAndroid Build Coastguard Worker 	int priority;
42*8617a60dSAndroid Build Coastguard Worker 	int required;
43*8617a60dSAndroid Build Coastguard Worker 	int legacy_boot;
44*8617a60dSAndroid Build Coastguard Worker 	uint32_t raw_value;
45*8617a60dSAndroid Build Coastguard Worker 	int set_begin;
46*8617a60dSAndroid Build Coastguard Worker 	int set_size;
47*8617a60dSAndroid Build Coastguard Worker 	int set_type;
48*8617a60dSAndroid Build Coastguard Worker 	int set_unique;
49*8617a60dSAndroid Build Coastguard Worker 	int set_error_counter;
50*8617a60dSAndroid Build Coastguard Worker 	int set_successful;
51*8617a60dSAndroid Build Coastguard Worker 	int set_tries;
52*8617a60dSAndroid Build Coastguard Worker 	int set_priority;
53*8617a60dSAndroid Build Coastguard Worker 	int set_required;
54*8617a60dSAndroid Build Coastguard Worker 	int set_legacy_boot;
55*8617a60dSAndroid Build Coastguard Worker 	int set_raw;
56*8617a60dSAndroid Build Coastguard Worker } CgptAddParams;
57*8617a60dSAndroid Build Coastguard Worker 
58*8617a60dSAndroid Build Coastguard Worker typedef struct CgptEditParams {
59*8617a60dSAndroid Build Coastguard Worker 	const char *drive_name;
60*8617a60dSAndroid Build Coastguard Worker 	uint64_t drive_size;
61*8617a60dSAndroid Build Coastguard Worker 	Guid unique_guid;
62*8617a60dSAndroid Build Coastguard Worker 	int set_unique;
63*8617a60dSAndroid Build Coastguard Worker } CgptEditParams;
64*8617a60dSAndroid Build Coastguard Worker 
65*8617a60dSAndroid Build Coastguard Worker typedef struct CgptShowParams {
66*8617a60dSAndroid Build Coastguard Worker 	const char *drive_name;
67*8617a60dSAndroid Build Coastguard Worker 	uint64_t drive_size;
68*8617a60dSAndroid Build Coastguard Worker 	int numeric;
69*8617a60dSAndroid Build Coastguard Worker 	int verbose;
70*8617a60dSAndroid Build Coastguard Worker 	int quick;
71*8617a60dSAndroid Build Coastguard Worker 	uint32_t partition;
72*8617a60dSAndroid Build Coastguard Worker 	int single_item;
73*8617a60dSAndroid Build Coastguard Worker 	int debug;
74*8617a60dSAndroid Build Coastguard Worker 	int num_partitions;
75*8617a60dSAndroid Build Coastguard Worker } CgptShowParams;
76*8617a60dSAndroid Build Coastguard Worker 
77*8617a60dSAndroid Build Coastguard Worker typedef struct CgptRepairParams {
78*8617a60dSAndroid Build Coastguard Worker 	const char *drive_name;
79*8617a60dSAndroid Build Coastguard Worker 	uint64_t drive_size;
80*8617a60dSAndroid Build Coastguard Worker 	int verbose;
81*8617a60dSAndroid Build Coastguard Worker } CgptRepairParams;
82*8617a60dSAndroid Build Coastguard Worker 
83*8617a60dSAndroid Build Coastguard Worker typedef struct CgptBootParams {
84*8617a60dSAndroid Build Coastguard Worker 	const char *drive_name;
85*8617a60dSAndroid Build Coastguard Worker 	uint64_t drive_size;
86*8617a60dSAndroid Build Coastguard Worker 	uint32_t partition;
87*8617a60dSAndroid Build Coastguard Worker 	const char *bootfile;
88*8617a60dSAndroid Build Coastguard Worker 	int create_pmbr;
89*8617a60dSAndroid Build Coastguard Worker } CgptBootParams;
90*8617a60dSAndroid Build Coastguard Worker 
91*8617a60dSAndroid Build Coastguard Worker typedef struct CgptPrioritizeParams {
92*8617a60dSAndroid Build Coastguard Worker 	const char *drive_name;
93*8617a60dSAndroid Build Coastguard Worker 	uint64_t drive_size;
94*8617a60dSAndroid Build Coastguard Worker 	uint32_t set_partition;
95*8617a60dSAndroid Build Coastguard Worker 	int set_friends;
96*8617a60dSAndroid Build Coastguard Worker 	int max_priority;
97*8617a60dSAndroid Build Coastguard Worker 	int orig_priority;
98*8617a60dSAndroid Build Coastguard Worker } CgptPrioritizeParams;
99*8617a60dSAndroid Build Coastguard Worker 
100*8617a60dSAndroid Build Coastguard Worker struct CgptFindParams;
101*8617a60dSAndroid Build Coastguard Worker typedef void (*CgptFindShowFn)(struct CgptFindParams *params,
102*8617a60dSAndroid Build Coastguard Worker 			       const char *filename, int partnum,
103*8617a60dSAndroid Build Coastguard Worker 			       GptEntry *entry);
104*8617a60dSAndroid Build Coastguard Worker typedef struct CgptFindParams {
105*8617a60dSAndroid Build Coastguard Worker 	const char *drive_name;
106*8617a60dSAndroid Build Coastguard Worker 	uint64_t drive_size;
107*8617a60dSAndroid Build Coastguard Worker 	int verbose;
108*8617a60dSAndroid Build Coastguard Worker 	int set_unique;
109*8617a60dSAndroid Build Coastguard Worker 	int set_type;
110*8617a60dSAndroid Build Coastguard Worker 	int set_label;
111*8617a60dSAndroid Build Coastguard Worker 	int oneonly;
112*8617a60dSAndroid Build Coastguard Worker 	int numeric;
113*8617a60dSAndroid Build Coastguard Worker 	uint8_t *matchbuf;
114*8617a60dSAndroid Build Coastguard Worker 	uint64_t matchlen;
115*8617a60dSAndroid Build Coastguard Worker 	uint64_t matchoffset;
116*8617a60dSAndroid Build Coastguard Worker 	uint8_t *comparebuf;
117*8617a60dSAndroid Build Coastguard Worker 	Guid unique_guid;
118*8617a60dSAndroid Build Coastguard Worker 	Guid type_guid;
119*8617a60dSAndroid Build Coastguard Worker 	const char *label;
120*8617a60dSAndroid Build Coastguard Worker 	int hits;
121*8617a60dSAndroid Build Coastguard Worker 	int match_partnum;           /* 1-based; 0 means no match */
122*8617a60dSAndroid Build Coastguard Worker 	/* when working with MTD, we actually work on a temp file, but we still
123*8617a60dSAndroid Build Coastguard Worker 	 * need to print the device name. so this parameter is here to properly
124*8617a60dSAndroid Build Coastguard Worker 	 * show the correct device name in that special case. */
125*8617a60dSAndroid Build Coastguard Worker 	CgptFindShowFn show_fn;
126*8617a60dSAndroid Build Coastguard Worker } CgptFindParams;
127*8617a60dSAndroid Build Coastguard Worker 
128*8617a60dSAndroid Build Coastguard Worker enum {
129*8617a60dSAndroid Build Coastguard Worker 	CGPT_LEGACY_MODE_LEGACY = 0,
130*8617a60dSAndroid Build Coastguard Worker 	CGPT_LEGACY_MODE_EFIPART,
131*8617a60dSAndroid Build Coastguard Worker 	CGPT_LEGACY_MODE_IGNORE_PRIMARY,
132*8617a60dSAndroid Build Coastguard Worker };
133*8617a60dSAndroid Build Coastguard Worker 
134*8617a60dSAndroid Build Coastguard Worker typedef struct CgptLegacyParams {
135*8617a60dSAndroid Build Coastguard Worker 	const char *drive_name;
136*8617a60dSAndroid Build Coastguard Worker 	uint64_t drive_size;
137*8617a60dSAndroid Build Coastguard Worker 	int mode;
138*8617a60dSAndroid Build Coastguard Worker } CgptLegacyParams;
139*8617a60dSAndroid Build Coastguard Worker 
140*8617a60dSAndroid Build Coastguard Worker #ifdef __cplusplus
141*8617a60dSAndroid Build Coastguard Worker }
142*8617a60dSAndroid Build Coastguard Worker #endif  /* __cplusplus */
143*8617a60dSAndroid Build Coastguard Worker 
144*8617a60dSAndroid Build Coastguard Worker #endif  /* VBOOT_REFERENCE_CGPT_PARAMS_H_ */
145