mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-24 10:14:55 +00:00
Now that we have support for the IGNOREME signature in cgpt, we need a way to set it on an existing disk. The easiest option is to shoehorn this into the cgpt legacy command, because that's already made to modify GPT header signatures (really, it would be nice to rename it to cgpt signature or something, but let's not break existing uses for now). BRANCH=None BUG=chrome-os-partner:52595 TEST=unit tests Change-Id: If2835fec28a9c39373abd050e2e057f73e5ec700 Signed-off-by: Julius Werner <jwerner@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/340073 Reviewed-by: Nam Nguyen <namnguyen@google.com>
121 lines
2.6 KiB
C
121 lines
2.6 KiB
C
// Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#ifndef VBOOT_REFERENCE_CGPT_CGPT_PARAMS_H_
|
|
#define VBOOT_REFERENCE_CGPT_CGPT_PARAMS_H_
|
|
#include <stdint.h>
|
|
|
|
#include "gpt.h"
|
|
|
|
enum {
|
|
CGPT_OK = 0,
|
|
CGPT_FAILED,
|
|
};
|
|
|
|
typedef struct CgptCreateParams {
|
|
char *drive_name;
|
|
uint64_t drive_size;
|
|
int zap;
|
|
uint64_t padding;
|
|
} CgptCreateParams;
|
|
|
|
typedef struct CgptAddParams {
|
|
char *drive_name;
|
|
uint64_t drive_size;
|
|
uint32_t partition;
|
|
uint64_t begin;
|
|
uint64_t size;
|
|
Guid type_guid;
|
|
Guid unique_guid;
|
|
char *label;
|
|
int successful;
|
|
int tries;
|
|
int priority;
|
|
uint32_t raw_value;
|
|
int set_begin;
|
|
int set_size;
|
|
int set_type;
|
|
int set_unique;
|
|
int set_successful;
|
|
int set_tries;
|
|
int set_priority;
|
|
int set_raw;
|
|
} CgptAddParams;
|
|
|
|
typedef struct CgptShowParams {
|
|
char *drive_name;
|
|
uint64_t drive_size;
|
|
int numeric;
|
|
int verbose;
|
|
int quick;
|
|
uint32_t partition;
|
|
int single_item;
|
|
int debug;
|
|
int num_partitions;
|
|
} CgptShowParams;
|
|
|
|
typedef struct CgptRepairParams {
|
|
char *drive_name;
|
|
uint64_t drive_size;
|
|
int verbose;
|
|
} CgptRepairParams;
|
|
|
|
typedef struct CgptBootParams {
|
|
char *drive_name;
|
|
uint64_t drive_size;
|
|
uint32_t partition;
|
|
char *bootfile;
|
|
int create_pmbr;
|
|
} CgptBootParams;
|
|
|
|
typedef struct CgptPrioritizeParams {
|
|
char *drive_name;
|
|
uint64_t drive_size;
|
|
uint32_t set_partition;
|
|
int set_friends;
|
|
int max_priority;
|
|
int orig_priority;
|
|
} CgptPrioritizeParams;
|
|
|
|
struct CgptFindParams;
|
|
typedef void (*CgptFindShowFn)(struct CgptFindParams *params, char *filename,
|
|
int partnum, GptEntry *entry);
|
|
typedef struct CgptFindParams {
|
|
char *drive_name;
|
|
uint64_t drive_size;
|
|
int verbose;
|
|
int set_unique;
|
|
int set_type;
|
|
int set_label;
|
|
int oneonly;
|
|
int numeric;
|
|
uint8_t *matchbuf;
|
|
uint64_t matchlen;
|
|
uint64_t matchoffset;
|
|
uint8_t *comparebuf;
|
|
Guid unique_guid;
|
|
Guid type_guid;
|
|
char *label;
|
|
int hits;
|
|
int match_partnum; /* 1-based; 0 means no match */
|
|
/* when working with MTD, we actually work on a temp file, but we still need
|
|
* to print the device name. so this parameter is here to properly show the
|
|
* correct device name in that special case. */
|
|
CgptFindShowFn show_fn;
|
|
} CgptFindParams;
|
|
|
|
enum {
|
|
CGPT_LEGACY_MODE_LEGACY = 0,
|
|
CGPT_LEGACY_MODE_EFIPART,
|
|
CGPT_LEGACY_MODE_IGNORE_PRIMARY,
|
|
};
|
|
|
|
typedef struct CgptLegacyParams {
|
|
char *drive_name;
|
|
uint64_t drive_size;
|
|
int mode;
|
|
} CgptLegacyParams;
|
|
|
|
#endif // VBOOT_REFERENCE_CGPT_CGPT_PARAMS_H_
|