1 /*****************************************************************************\ 2 * opts.h 3 ***************************************************************************** 4 * Copyright (C) 2002-2005 The Regents of the University of California. 5 * Produced at the Lawrence Livermore National Laboratory. 6 * Written by Dave Peterson <dsp@llnl.gov> <dave_peterson@pobox.com>. 7 * UCRL-CODE-2003-012 8 * All rights reserved. 9 * 10 * This file is part of nvramtool, a utility for reading/writing coreboot 11 * parameters and displaying information from the coreboot table. 12 * For details, see http://coreboot.org/nvramtool. 13 * 14 * Please also read the file DISCLAIMER which is included in this software 15 * distribution. 16 * 17 * This program is free software; you can redistribute it and/or modify it 18 * under the terms of the GNU General Public License (as published by the 19 * Free Software Foundation) version 2, dated June 1991. 20 * 21 * This program is distributed in the hope that it will be useful, but 22 * WITHOUT ANY WARRANTY; without even the IMPLIED WARRANTY OF 23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the terms and 24 * conditions of the GNU General Public License for more details. 25 * 26 * You should have received a copy of the GNU General Public License along 27 * with this program; if not, write to the Free Software Foundation, Inc., 28 * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 29 \*****************************************************************************/ 30 31 #ifndef OPTS_H 32 #define OPTS_H 33 34 #include "common.h" 35 36 typedef enum { NVRAMTOOL_OP_SHOW_VERSION = 0, 37 NVRAMTOOL_OP_SHOW_USAGE, 38 NVRAMTOOL_OP_LBTABLE_SHOW_INFO, 39 NVRAMTOOL_OP_LBTABLE_DUMP, 40 NVRAMTOOL_OP_SHOW_PARAM_VALUES, 41 NVRAMTOOL_OP_CMOS_SHOW_ONE_PARAM, 42 NVRAMTOOL_OP_CMOS_SHOW_ALL_PARAMS, 43 NVRAMTOOL_OP_CMOS_SET_ONE_PARAM, 44 NVRAMTOOL_OP_CMOS_SET_PARAMS_STDIN, 45 NVRAMTOOL_OP_CMOS_SET_PARAMS_FILE, 46 NVRAMTOOL_OP_CMOS_CHECKSUM, 47 NVRAMTOOL_OP_SHOW_LAYOUT, 48 NVRAMTOOL_OP_WRITE_CMOS_DUMP, 49 NVRAMTOOL_OP_READ_CMOS_DUMP, 50 NVRAMTOOL_OP_SHOW_CMOS_HEX_DUMP, 51 NVRAMTOOL_OP_SHOW_CMOS_DUMPFILE 52 } nvramtool_op_t; 53 54 typedef struct { 55 nvramtool_op_t op; 56 char *param; 57 } nvramtool_op_info_t; 58 59 typedef enum { NVRAMTOOL_MOD_SHOW_VALUE_ONLY = 0, 60 NVRAMTOOL_MOD_USE_CMOS_LAYOUT_FILE, 61 NVRAMTOOL_MOD_USE_CBFS_FILE, 62 NVRAMTOOL_MOD_USE_CMOS_FILE, 63 NVRAMTOOL_MOD_USE_CMOS_OPT_TABLE, 64 NVRAMTOOL_NUM_OP_MODIFIERS /* must always be last */ 65 } nvramtool_op_modifier_t; 66 67 typedef struct { 68 int found; 69 int found_seq; 70 char *param; 71 } nvramtool_op_modifier_info_t; 72 73 extern nvramtool_op_info_t nvramtool_op; 74 75 extern nvramtool_op_modifier_info_t nvramtool_op_modifiers[]; 76 77 void parse_nvramtool_args(int argc, char *argv[]); 78 79 #endif /* OPTS_H */ 80