Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / openbios / fs / iso9660 / iso9660_lseek.c
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 int iso9660_lseek(iso9660_FILE *_file, long offset, int whence)
12 {
13         iso9660_FILE *file = (iso9660_FILE*)_file;
14         long new_offset;
15
16         switch(whence)
17         {
18         case SEEK_SET:
19                 new_offset = offset;
20                 break;
21         case SEEK_CUR:
22                 new_offset = file->offset + offset;
23                 break;
24         case SEEK_END:
25                 new_offset = file->size + offset;
26                 break;
27         default:
28                 return -1;
29         }
30
31         if ( (new_offset < 0) || (new_offset > file->size) )
32                 return -1;
33
34         file->offset = new_offset;
35
36         return new_offset;
37 }