~pmdj/ubuntu/trusty/qemu/2.9+applesmc+fadtv3

« back to all changes in this revision

Viewing changes to roms/openbios/fs/iso9660/iso9660_open.c

  • Committer: Phil Dennis-Jordan
  • Date: 2017-07-21 08:03:43 UTC
  • mfrom: (1.1.1)
  • Revision ID: phil@philjordan.eu-20170721080343-2yr2vdj7713czahv
New upstream release 2.9.0.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 *
 
3
 * (c) 2005-2009 Laurent Vivier <Laurent@vivier.eu>
 
4
 *
 
5
 * This file has been copied from EMILE, http://emile.sf.net
 
6
 *
 
7
 */
 
8
 
 
9
#include "libiso9660.h"
 
10
 
 
11
iso9660_FILE* iso9660_open(iso9660_VOLUME *volume, const char* pathname)
 
12
{
 
13
        struct iso_directory_record *root;
 
14
        struct iso_directory_record *idr;
 
15
        iso9660_FILE *file;
 
16
 
 
17
        root = iso9660_get_root_node(volume);
 
18
        if (root == NULL)
 
19
                return NULL;
 
20
 
 
21
        idr = iso9660_get_node(volume, root, pathname);
 
22
        if (idr == NULL)
 
23
                return NULL;
 
24
 
 
25
        file = (iso9660_FILE*)malloc(sizeof(iso9660_FILE));
 
26
        if (file == NULL)
 
27
                return NULL;
 
28
 
 
29
        file->base = isonum_733((char *)idr->extent);
 
30
        file->size = isonum_733((char *)idr->size);
 
31
        file->offset = 0;
 
32
        file->current = -1;
 
33
        file->volume = volume;
 
34
        file->path = strdup(pathname);
 
35
 
 
36
        free(idr);
 
37
 
 
38
        return file;
 
39
}