Annotation of qemu/qemu-option.h, revision 1.1.1.3

1.1       root        1: /*
                      2:  * Commandline option parsing functions
                      3:  *
                      4:  * Copyright (c) 2003-2008 Fabrice Bellard
                      5:  * Copyright (c) 2009 Kevin Wolf <[email protected]>
                      6:  *
                      7:  * Permission is hereby granted, free of charge, to any person obtaining a copy
                      8:  * of this software and associated documentation files (the "Software"), to deal
                      9:  * in the Software without restriction, including without limitation the rights
                     10:  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
                     11:  * copies of the Software, and to permit persons to whom the Software is
                     12:  * furnished to do so, subject to the following conditions:
                     13:  *
                     14:  * The above copyright notice and this permission notice shall be included in
                     15:  * all copies or substantial portions of the Software.
                     16:  *
                     17:  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                     18:  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                     19:  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
                     20:  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                     21:  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
                     22:  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
                     23:  * THE SOFTWARE.
                     24:  */
                     25: 
                     26: #ifndef QEMU_OPTIONS_H
                     27: #define QEMU_OPTIONS_H
                     28: 
1.1.1.2   root       29: #include <stdint.h>
                     30: #include "qemu-queue.h"
1.1.1.3 ! root       31: #include "qdict.h"
1.1.1.2   root       32: 
1.1       root       33: enum QEMUOptionParType {
                     34:     OPT_FLAG,
                     35:     OPT_NUMBER,
                     36:     OPT_SIZE,
                     37:     OPT_STRING,
                     38: };
                     39: 
                     40: typedef struct QEMUOptionParameter {
                     41:     const char *name;
                     42:     enum QEMUOptionParType type;
                     43:     union {
                     44:         uint64_t n;
                     45:         char* s;
                     46:     } value;
                     47:     const char *help;
                     48: } QEMUOptionParameter;
                     49: 
                     50: 
                     51: const char *get_opt_name(char *buf, int buf_size, const char *p, char delim);
                     52: const char *get_opt_value(char *buf, int buf_size, const char *p);
1.1.1.2   root       53: int get_next_param_value(char *buf, int buf_size,
                     54:                          const char *tag, const char **pstr);
                     55: int get_param_value(char *buf, int buf_size,
                     56:                     const char *tag, const char *str);
                     57: int check_params(char *buf, int buf_size,
                     58:                  const char * const *params, const char *str);
1.1       root       59: 
                     60: 
                     61: /*
                     62:  * The following functions take a parameter list as input. This is a pointer to
                     63:  * the first element of a QEMUOptionParameter array which is terminated by an
                     64:  * entry with entry->name == NULL.
                     65:  */
                     66: 
                     67: QEMUOptionParameter *get_option_parameter(QEMUOptionParameter *list,
                     68:     const char *name);
                     69: int set_option_parameter(QEMUOptionParameter *list, const char *name,
                     70:     const char *value);
                     71: int set_option_parameter_int(QEMUOptionParameter *list, const char *name,
                     72:     uint64_t value);
1.1.1.3 ! root       73: QEMUOptionParameter *append_option_parameters(QEMUOptionParameter *dest,
        !            74:     QEMUOptionParameter *list);
1.1       root       75: QEMUOptionParameter *parse_option_parameters(const char *param,
                     76:     QEMUOptionParameter *list, QEMUOptionParameter *dest);
                     77: void free_option_parameters(QEMUOptionParameter *list);
                     78: void print_option_parameters(QEMUOptionParameter *list);
                     79: void print_option_help(QEMUOptionParameter *list);
                     80: 
1.1.1.2   root       81: /* ------------------------------------------------------------------ */
                     82: 
                     83: typedef struct QemuOpt QemuOpt;
                     84: typedef struct QemuOpts QemuOpts;
                     85: typedef struct QemuOptsList QemuOptsList;
                     86: 
                     87: enum QemuOptType {
                     88:     QEMU_OPT_STRING = 0,  /* no parsing (use string as-is)                        */
                     89:     QEMU_OPT_BOOL,        /* on/off                                               */
                     90:     QEMU_OPT_NUMBER,      /* simple number                                        */
                     91:     QEMU_OPT_SIZE,        /* size, accepts (K)ilo, (M)ega, (G)iga, (T)era postfix */
                     92: };
                     93: 
                     94: typedef struct QemuOptDesc {
                     95:     const char *name;
                     96:     enum QemuOptType type;
                     97:     const char *help;
                     98: } QemuOptDesc;
                     99: 
                    100: struct QemuOptsList {
                    101:     const char *name;
1.1.1.3 ! root      102:     const char *implied_opt_name;
1.1.1.2   root      103:     QTAILQ_HEAD(, QemuOpts) head;
                    104:     QemuOptDesc desc[];
                    105: };
                    106: 
                    107: const char *qemu_opt_get(QemuOpts *opts, const char *name);
                    108: int qemu_opt_get_bool(QemuOpts *opts, const char *name, int defval);
                    109: uint64_t qemu_opt_get_number(QemuOpts *opts, const char *name, uint64_t defval);
                    110: uint64_t qemu_opt_get_size(QemuOpts *opts, const char *name, uint64_t defval);
                    111: int qemu_opt_set(QemuOpts *opts, const char *name, const char *value);
                    112: typedef int (*qemu_opt_loopfunc)(const char *name, const char *value, void *opaque);
                    113: int qemu_opt_foreach(QemuOpts *opts, qemu_opt_loopfunc func, void *opaque,
                    114:                      int abort_on_failure);
                    115: 
                    116: QemuOpts *qemu_opts_find(QemuOptsList *list, const char *id);
                    117: QemuOpts *qemu_opts_create(QemuOptsList *list, const char *id, int fail_if_exists);
1.1.1.3 ! root      118: void qemu_opts_reset(QemuOptsList *list);
        !           119: void qemu_opts_loc_restore(QemuOpts *opts);
1.1.1.2   root      120: int qemu_opts_set(QemuOptsList *list, const char *id,
                    121:                   const char *name, const char *value);
                    122: const char *qemu_opts_id(QemuOpts *opts);
                    123: void qemu_opts_del(QemuOpts *opts);
1.1.1.3 ! root      124: int qemu_opts_validate(QemuOpts *opts, const QemuOptDesc *desc);
1.1.1.2   root      125: int qemu_opts_do_parse(QemuOpts *opts, const char *params, const char *firstname);
1.1.1.3 ! root      126: QemuOpts *qemu_opts_parse(QemuOptsList *list, const char *params, int permit_abbrev);
        !           127: QemuOpts *qemu_opts_from_qdict(QemuOptsList *list, const QDict *qdict);
        !           128: QDict *qemu_opts_to_qdict(QemuOpts *opts, QDict *qdict);
1.1.1.2   root      129: 
                    130: typedef int (*qemu_opts_loopfunc)(QemuOpts *opts, void *opaque);
                    131: int qemu_opts_print(QemuOpts *opts, void *dummy);
                    132: int qemu_opts_foreach(QemuOptsList *list, qemu_opts_loopfunc func, void *opaque,
                    133:                       int abort_on_failure);
                    134: 
1.1       root      135: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.