mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2025-11-24 02:05:01 +00:00
Remove unused files, and tidy the directory structure of the remaining ones.
Review URL: http://codereview.chromium.org/2815011
This commit is contained in:
115
firmware/lib/cgptlib/include/cgptlib_internal.h
Normal file
115
firmware/lib/cgptlib/include/cgptlib_internal.h
Normal file
@@ -0,0 +1,115 @@
|
||||
/* Copyright (c) 2010 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_CGPTLIB_INTERNAL_H_
|
||||
#define VBOOT_REFERENCE_CGPTLIB_INTERNAL_H_
|
||||
|
||||
#include "sysincludes.h"
|
||||
#include "cgptlib.h"
|
||||
#include "gpt.h"
|
||||
|
||||
/* If gpt->current_kernel is this value, means either:
|
||||
* 1. an initial value before scanning GPT entries,
|
||||
* 2. after scanning, no any valid kernel is found.
|
||||
*/
|
||||
#define CGPT_KERNEL_ENTRY_NOT_FOUND (-1)
|
||||
|
||||
/* Bit definitions and masks for GPT attributes.
|
||||
*
|
||||
* 63-61 -- (reserved)
|
||||
* 60 -- read-only
|
||||
* 59-57 -- (reserved)
|
||||
* 56 -- success
|
||||
* 55-52 -- tries
|
||||
* 51-48 -- priority
|
||||
* 47-2 -- UEFI: reserved for future use
|
||||
* 1 -- UEFI: partition is not mapped
|
||||
* 0 -- UEFI: partition is required
|
||||
*/
|
||||
#define CGPT_ATTRIBUTE_SUCCESSFUL_OFFSET 56
|
||||
#define CGPT_ATTRIBUTE_MAX_SUCCESSFUL (1ULL)
|
||||
#define CGPT_ATTRIBUTE_SUCCESSFUL_MASK (CGPT_ATTRIBUTE_MAX_SUCCESSFUL << \
|
||||
CGPT_ATTRIBUTE_SUCCESSFUL_OFFSET)
|
||||
|
||||
#define CGPT_ATTRIBUTE_TRIES_OFFSET 52
|
||||
#define CGPT_ATTRIBUTE_MAX_TRIES (15ULL)
|
||||
#define CGPT_ATTRIBUTE_TRIES_MASK (CGPT_ATTRIBUTE_MAX_TRIES << \
|
||||
CGPT_ATTRIBUTE_TRIES_OFFSET)
|
||||
|
||||
#define CGPT_ATTRIBUTE_PRIORITY_OFFSET 48
|
||||
#define CGPT_ATTRIBUTE_MAX_PRIORITY (15ULL)
|
||||
#define CGPT_ATTRIBUTE_PRIORITY_MASK (CGPT_ATTRIBUTE_MAX_PRIORITY << \
|
||||
CGPT_ATTRIBUTE_PRIORITY_OFFSET)
|
||||
|
||||
/* Defines ChromeOS-specific limitation on GPT */
|
||||
#define MIN_SIZE_OF_HEADER 92
|
||||
#define MAX_SIZE_OF_HEADER 512
|
||||
#define MIN_SIZE_OF_ENTRY 128
|
||||
#define MAX_SIZE_OF_ENTRY 512
|
||||
#define SIZE_OF_ENTRY_MULTIPLE 8
|
||||
#define MIN_NUMBER_OF_ENTRIES 32
|
||||
#define MAX_NUMBER_OF_ENTRIES 512
|
||||
|
||||
/* Defines GPT sizes */
|
||||
#define GPT_PMBR_SECTOR 1 /* size (in sectors) of PMBR */
|
||||
#define GPT_HEADER_SECTOR 1
|
||||
#define GPT_ENTRIES_SECTORS 32 /* assume sector size if 512 bytes, then
|
||||
* (TOTAL_ENTRIES_SIZE / 512) = 32 */
|
||||
|
||||
/* alias name of index in internal array for primary and secondary header and
|
||||
* entries. */
|
||||
enum {
|
||||
PRIMARY = 0,
|
||||
SECONDARY = 1,
|
||||
MASK_NONE = 0,
|
||||
MASK_PRIMARY = 1,
|
||||
MASK_SECONDARY = 2,
|
||||
MASK_BOTH = 3,
|
||||
};
|
||||
|
||||
/* Verify GptData parameters are sane. */
|
||||
int CheckParameters(GptData* gpt);
|
||||
|
||||
/* Check header fields.
|
||||
*
|
||||
* Returns 0 if header is valid, 1 if invalid. */
|
||||
int CheckHeader(GptHeader* h, int is_secondary, uint64_t drive_sectors);
|
||||
|
||||
/* Calculate and return the header CRC. */
|
||||
uint32_t HeaderCrc(GptHeader* h);
|
||||
|
||||
/* Check entries.
|
||||
*
|
||||
* Returns 0 if entries are valid, 1 if invalid. */
|
||||
int CheckEntries(GptEntry* entries, GptHeader* h, uint64_t drive_sectors);
|
||||
|
||||
/* Check GptData, headers, entries.
|
||||
*
|
||||
* If successful, sets gpt->valid_headers and gpt->valid_entries and returns
|
||||
* GPT_SUCCESS.
|
||||
*
|
||||
* On error, returns a GPT_ERROR_* return code. */
|
||||
int GptSanityCheck(GptData* gpt);
|
||||
|
||||
/* Repairs GPT data by copying from one set of valid headers/entries to the
|
||||
* other. Assumes GptSanityCheck() has been run to determine which headers
|
||||
* and/or entries are already valid. */
|
||||
void GptRepair(GptData* gpt);
|
||||
|
||||
/* Getters and setters for partition attribute fields. */
|
||||
int GetEntrySuccessful(const GptEntry* e);
|
||||
int GetEntryPriority(const GptEntry* e);
|
||||
int GetEntryTries(const GptEntry* e);
|
||||
void SetEntrySuccessful(GptEntry* e, int successful);
|
||||
void SetEntryPriority(GptEntry* e, int priority);
|
||||
void SetEntryTries(GptEntry* e, int tries);
|
||||
|
||||
/* Return 1 if the entry is unused, 0 if it is used. */
|
||||
int IsUnusedEntry(const GptEntry* e);
|
||||
|
||||
/* Returns 1 if the entry is a Chrome OS kernel partition, else 0. */
|
||||
int IsKernelEntry(const GptEntry* e);
|
||||
|
||||
#endif /* VBOOT_REFERENCE_CGPTLIB_INTERNAL_H_ */
|
||||
Reference in New Issue
Block a user