/* Copyright 2015 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. * * This module provides some utility functions to use "flashrom" to read from * and write to NOR flash. */ #ifndef VBOOT_REFERENCE_CGPT_NOR_H_ #define VBOOT_REFERENCE_CGPT_NOR_H_ // Obtain the MTD size from its sysfs node. |mtd_device| should point to // a dev node such as /dev/mtd0. This function returns 0 on success. int GetMtdSize(const char *mtd_device, uint64_t *size); // Exec |argv| in |cwd|. Return -1 on error, or exit code on success. |argv| // must be terminated with a NULL element as is required by execv(). int ForkExecV(const char *cwd, const char *const argv[]); // Similar to ForkExecV but with a vararg instead of an array of pointers. int ForkExecL(const char *cwd, const char *cmd, ...); // Exec "rm" to remove |dir|. int RemoveDir(const char *dir); // Read RW_GPT from NOR flash to "rw_gpt" in dir. int ReadNorFlash(const char *dir); // Write "rw_gpt" back to NOR flash. We write the file in two parts for safety. int WriteNorFlash(const char *dir); #endif /* VBOOT_REFERENCE_CGPT_NOR_H_ */