1 /* cpio.c - cpio and tar filesystem. */
3 * GRUB -- GRand Unified Bootloader
4 * Copyright (C) 2007,2008,2009,2013 Free Software Foundation, Inc.
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.
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.
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/>.
20 #include <grub/misc.h>
22 #define ALIGN_CPIO(x) (ALIGN_UP ((x), 2))
23 #define MAGIC "\x71\xc7"
27 grub_uint16_t magic
[1];
30 grub_uint16_t mode
[1];
35 grub_uint16_t mtime
[2];
36 grub_uint16_t namesize
[1];
37 grub_uint16_t filesize
[2];
40 static inline unsigned long long
41 read_number (const grub_uint16_t
*arr
, grub_size_t size
)
45 ret
= (ret
<< 16) | grub_be_to_cpu16 (*arr
++);
49 #define FSNAME "cpiofs_be"
51 #include "cpio_common.c"
53 GRUB_MOD_INIT (cpio_be
)
55 grub_fs_register (&grub_cpio_fs
);
58 GRUB_MOD_FINI (cpio_be
)
60 grub_fs_unregister (&grub_cpio_fs
);