/* 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_REFERCENCE_CGPT_CGPT_NOR_H_ #define VBOOT_REFERCENCE_CGPT_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 a temp dir |temp_dir_template|. // |temp_dir_template| is passed to mkdtemp() so it must satisfy all // requirements by mkdtemp(). int ReadNorFlash(char *temp_dir_template); // Write "rw_gpt" back to NOR flash. We write the file in two parts for safety. int WriteNorFlash(const char *dir); #endif // VBOOT_REFERCENCE_CGPT_CGPT_NOR_H_