/* cpio.c - cpio and tar filesystem. */ /* * GRUB -- GRand Unified Bootloader * Copyright (C) 2007,2008,2009,2013 Free Software Foundation, Inc. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ #include #define ALIGN_CPIO(x) x #define MAGIC "070707" struct head { char magic[6]; char dev[6]; char ino[6]; char mode[6]; char uid[6]; char gid[6]; char nlink[6]; char rdev[6]; char mtime[11]; char namesize[6]; char filesize[11]; } __attribute__ ((packed)); static inline unsigned long long read_number (const char *str, grub_size_t size) { unsigned long long ret = 0; while (size-- && *str >= '0' && *str <= '7') ret = (ret << 3) | (*str++ & 0xf); return ret; } #define FSNAME "odc" #include "cpio_common.c" GRUB_MOD_INIT (odc) { grub_fs_register (&grub_cpio_fs); } GRUB_MOD_FINI (odc) { grub_fs_unregister (&grub_cpio_fs); }