]> git.proxmox.com Git - grub2.git/blob - grub-core/fs/odc.c
Import grub2_2.02+dfsg1.orig.tar.xz
[grub2.git] / grub-core / fs / odc.c
1 /* cpio.c - cpio and tar filesystem. */
2 /*
3 * GRUB -- GRand Unified Bootloader
4 * Copyright (C) 2007,2008,2009,2013 Free Software Foundation, Inc.
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #include <grub/misc.h>
21
22 #define ALIGN_CPIO(x) x
23
24 #define MAGIC "070707"
25 struct head
26 {
27 char magic[6];
28 char dev[6];
29 char ino[6];
30 char mode[6];
31 char uid[6];
32 char gid[6];
33 char nlink[6];
34 char rdev[6];
35 char mtime[11];
36 char namesize[6];
37 char filesize[11];
38 } GRUB_PACKED;
39
40 static inline unsigned long long
41 read_number (const char *str, grub_size_t size)
42 {
43 unsigned long long ret = 0;
44 while (size-- && *str >= '0' && *str <= '7')
45 ret = (ret << 3) | (*str++ & 0xf);
46 return ret;
47 }
48
49 #define FSNAME "odc"
50
51 #include "cpio_common.c"
52
53 GRUB_MOD_INIT (odc)
54 {
55 grub_fs_register (&grub_cpio_fs);
56 }
57
58 GRUB_MOD_FINI (odc)
59 {
60 grub_fs_unregister (&grub_cpio_fs);
61 }