Annotation of qemu/fsdev/qemu-fsdev.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Virtio 9p
                      3:  *
                      4:  * Copyright IBM, Corp. 2010
                      5:  *
                      6:  * Authors:
                      7:  *  Gautham R Shenoy <[email protected]>
                      8:  *
                      9:  * This work is licensed under the terms of the GNU GPL, version 2.  See
                     10:  * the COPYING file in the top-level directory.
                     11:  *
                     12:  */
                     13: #include <stdio.h>
                     14: #include <string.h>
                     15: #include "qemu-fsdev.h"
                     16: #include "qemu-queue.h"
                     17: #include "osdep.h"
                     18: #include "qemu-common.h"
                     19: 
                     20: static QTAILQ_HEAD(FsTypeEntry_head, FsTypeListEntry) fstype_entries =
                     21:     QTAILQ_HEAD_INITIALIZER(fstype_entries);
                     22: 
                     23: static FsTypeTable FsTypes[] = {
                     24:     { .name = "local", .ops = &local_ops},
                     25: };
                     26: 
                     27: int qemu_fsdev_add(QemuOpts *opts)
                     28: {
                     29:     struct FsTypeListEntry *fsle;
                     30:     int i;
                     31: 
                     32:     if (qemu_opts_id(opts) == NULL) {
                     33:         fprintf(stderr, "fsdev: No id specified\n");
                     34:         return -1;
                     35:     }
                     36: 
                     37:     for (i = 0; i < ARRAY_SIZE(FsTypes); i++) {
                     38:         if (strcmp(FsTypes[i].name, qemu_opt_get(opts, "fstype")) == 0) {
                     39:             break;
                     40:         }
                     41:     }
                     42: 
                     43:     if (i == ARRAY_SIZE(FsTypes)) {
                     44:         fprintf(stderr, "fsdev: fstype %s not found\n",
                     45:                     qemu_opt_get(opts, "fstype"));
                     46:         return -1;
                     47:     }
                     48: 
                     49:     if (qemu_opt_get(opts, "security_model") == NULL) {
                     50:         fprintf(stderr, "fsdev: No security_model specified.\n");
                     51:         return -1;
                     52:     }
                     53: 
                     54:     fsle = qemu_malloc(sizeof(*fsle));
                     55: 
                     56:     fsle->fse.fsdev_id = qemu_strdup(qemu_opts_id(opts));
                     57:     fsle->fse.path = qemu_strdup(qemu_opt_get(opts, "path"));
                     58:     fsle->fse.security_model = qemu_strdup(qemu_opt_get(opts,
                     59:                 "security_model"));
                     60:     fsle->fse.ops = FsTypes[i].ops;
                     61: 
                     62:     QTAILQ_INSERT_TAIL(&fstype_entries, fsle, next);
                     63:     return 0;
                     64: 
                     65: }
                     66: 
                     67: FsTypeEntry *get_fsdev_fsentry(char *id)
                     68: {
                     69:     struct FsTypeListEntry *fsle;
                     70: 
                     71:     QTAILQ_FOREACH(fsle, &fstype_entries, next) {
                     72:         if (strcmp(fsle->fse.fsdev_id, id) == 0) {
                     73:             return &fsle->fse;
                     74:         }
                     75:     }
                     76:     return NULL;
                     77: }

unix.superglobalmegacorp.com

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