diff options
Diffstat (limited to 'tools/dosfstools/patches/0011-Remove-linux-msdos_fs.h-includes.patch')
-rw-r--r-- | tools/dosfstools/patches/0011-Remove-linux-msdos_fs.h-includes.patch | 209 |
1 files changed, 209 insertions, 0 deletions
diff --git a/tools/dosfstools/patches/0011-Remove-linux-msdos_fs.h-includes.patch b/tools/dosfstools/patches/0011-Remove-linux-msdos_fs.h-includes.patch new file mode 100644 index 0000000000..08bd36ddc4 --- /dev/null +++ b/tools/dosfstools/patches/0011-Remove-linux-msdos_fs.h-includes.patch @@ -0,0 +1,209 @@ +From e18d72f70e30109492e9602ace5560e0c90b4a8b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= <noltari@gmail.com> +Date: Sat, 7 Mar 2015 13:23:23 +0100 +Subject: [PATCH 11/14] Remove linux/msdos_fs.h includes +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com> +Signed-off-by: Andreas Bombe <aeb@debian.org> +--- + src/file.c | 7 +------ + src/file.h | 2 ++ + src/fsck.fat.h | 8 ++------ + src/mkfs.fat.c | 32 +++--------------------------- + src/msdos_fs.h | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 5 files changed, 69 insertions(+), 41 deletions(-) + create mode 100644 src/msdos_fs.h + +diff --git a/src/file.c b/src/file.c +index 0b53840..9519070 100644 +--- a/src/file.c ++++ b/src/file.c +@@ -30,14 +30,9 @@ + #include <ctype.h> + #include <unistd.h> + +-#define _LINUX_STAT_H /* hack to avoid inclusion of <linux/stat.h> */ +-#define _LINUX_STRING_H_ /* hack to avoid inclusion of <linux/string.h> */ +-#define _LINUX_FS_H /* hack to avoid inclusion of <linux/fs.h> */ +- +-#include <linux/msdos_fs.h> +- + #include "common.h" + #include "file.h" ++#include "msdos_fs.h" + #include "charconv.h" + + FDSC *fp_root = NULL; +diff --git a/src/file.h b/src/file.h +index 3adfc96..eaaf356 100644 +--- a/src/file.h ++++ b/src/file.h +@@ -23,6 +23,8 @@ + #ifndef _FILE_H + #define _FILE_H + ++#include "msdos_fs.h" ++ + typedef enum { fdt_none, fdt_drop, fdt_undelete } FD_TYPE; + + typedef struct _fptr { +diff --git a/src/fsck.fat.h b/src/fsck.fat.h +index 27e9d52..e5f6178 100644 +--- a/src/fsck.fat.h ++++ b/src/fsck.fat.h +@@ -28,16 +28,12 @@ + #define _DOSFSCK_H + + #include <fcntl.h> +-#define _LINUX_STAT_H /* hack to avoid inclusion of <linux/stat.h> */ +-#define _LINUX_STRING_H_ /* hack to avoid inclusion of <linux/string.h> */ +-#define _LINUX_FS_H /* hack to avoid inclusion of <linux/fs.h> */ +- +-#include <linux/msdos_fs.h> +- + #include <stddef.h> + #include <stdint.h> + #include <endian.h> + ++#include "msdos_fs.h" ++ + #define VFAT_LN_ATTR (ATTR_RO | ATTR_HIDDEN | ATTR_SYS | ATTR_VOLUME) + + #define FAT_STATE_DIRTY 0x01 +diff --git a/src/mkfs.fat.c b/src/mkfs.fat.c +index 3d1512f..76d40d8 100644 +--- a/src/mkfs.fat.c ++++ b/src/mkfs.fat.c +@@ -67,6 +67,8 @@ + #include <stdint.h> + #include <endian.h> + ++#include "msdos_fs.h" ++ + /* In earlier versions, an own llseek() was used, but glibc lseek() is + * sufficient (or even better :) for 64 bit offsets in the meantime */ + #define llseek lseek +@@ -99,21 +101,6 @@ static inline int cdiv(int a, int b) + return (a + b - 1) / b; + } + +-/* MS-DOS filesystem structures -- I included them here instead of +- including linux/msdos_fs.h since that doesn't include some fields we +- need */ +- +-#define ATTR_RO 1 /* read-only */ +-#define ATTR_HIDDEN 2 /* hidden */ +-#define ATTR_SYS 4 /* system */ +-#define ATTR_VOLUME 8 /* volume label */ +-#define ATTR_DIR 16 /* directory */ +-#define ATTR_ARCH 32 /* archived */ +- +-#define ATTR_NONE 0 /* no attribute bits */ +-#define ATTR_UNUSED (ATTR_VOLUME | ATTR_ARCH | ATTR_SYS | ATTR_HIDDEN) +- /* attribute bits that are copied "as is" */ +- + /* FAT values */ + #define FAT_EOF (atari_format ? 0x0fffffff : 0x0ffffff8) + #define FAT_BAD 0x0ffffff7 +@@ -200,19 +187,6 @@ struct fat32_fsinfo { + uint32_t reserved2[4]; + }; + +-struct msdos_dir_entry { +- char name[8], ext[3]; /* name and extension */ +- uint8_t attr; /* attribute bits */ +- uint8_t lcase; /* Case for base and extension */ +- uint8_t ctime_ms; /* Creation time, milliseconds */ +- uint16_t ctime; /* Creation time */ +- uint16_t cdate; /* Creation date */ +- uint16_t adate; /* Last access date */ +- uint16_t starthi; /* high 16 bits of first cl. (FAT32) */ +- uint16_t time, date, start; /* time, date and first cluster */ +- uint32_t size; /* file size (in bytes) */ +-} __attribute__ ((packed)); +- + /* The "boot code" we put into the filesystem... it writes a message and + tells the user to try again */ + +@@ -1244,7 +1218,7 @@ static void setup_tables(void) + htole16((unsigned short)(ctime->tm_mday + + ((ctime->tm_mon + 1) << 5) + + ((ctime->tm_year - 80) << 9))); +- de->ctime_ms = 0; ++ de->ctime_cs = 0; + de->ctime = de->time; + de->cdate = de->date; + de->adate = de->date; +diff --git a/src/msdos_fs.h b/src/msdos_fs.h +new file mode 100644 +index 0000000..54b2a34 +--- /dev/null ++++ b/src/msdos_fs.h +@@ -0,0 +1,61 @@ ++/* msdos_fs.h - MS-DOS filesystem constants/structures ++ ++ 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 <http://www.gnu.org/licenses/>. ++ ++ The complete text of the GNU General Public License ++ can be found in /usr/share/common-licenses/GPL-3 file. ++*/ ++ ++#ifndef _MSDOS_FS_H ++#define _MSDOS_FS_H ++ ++#include <stdint.h> ++ ++#define SECTOR_SIZE 512 /* sector size (bytes) */ ++#define MSDOS_DPS (SECTOR_SIZE / sizeof(struct msdos_dir_entry)) ++#define MSDOS_DPS_BITS 4 /* log2(MSDOS_DPS) */ ++#define MSDOS_DIR_BITS 5 /* log2(sizeof(struct msdos_dir_entry)) */ ++ ++#define ATTR_NONE 0 /* no attribute bits */ ++#define ATTR_RO 1 /* read-only */ ++#define ATTR_HIDDEN 2 /* hidden */ ++#define ATTR_SYS 4 /* system */ ++#define ATTR_VOLUME 8 /* volume label */ ++#define ATTR_DIR 16 /* directory */ ++#define ATTR_ARCH 32 /* archived */ ++ ++/* attribute bits that are copied "as is" */ ++#define ATTR_UNUSED (ATTR_VOLUME | ATTR_ARCH | ATTR_SYS | ATTR_HIDDEN) ++ ++#define DELETED_FLAG 0xe5 /* marks file as deleted when in name[0] */ ++#define IS_FREE(n) (!*(n) || *(n) == DELETED_FLAG) ++ ++#define MSDOS_NAME 11 /* maximum name length */ ++#define MSDOS_DOT ". " /* ".", padded to MSDOS_NAME chars */ ++#define MSDOS_DOTDOT ".. " /* "..", padded to MSDOS_NAME chars */ ++ ++struct msdos_dir_entry { ++ uint8_t name[8], ext[3]; /* name and extension */ ++ uint8_t attr; /* attribute bits */ ++ uint8_t lcase; /* Case for base and extension */ ++ uint8_t ctime_cs; /* Creation time, centiseconds (0-199) */ ++ uint16_t ctime; /* Creation time */ ++ uint16_t cdate; /* Creation date */ ++ uint16_t adate; /* Last access date */ ++ uint16_t starthi; /* High 16 bits of cluster in FAT32 */ ++ uint16_t time, date, start; /* time, date and first cluster */ ++ uint32_t size; /* file size (in bytes) */ ++} __attribute__ ((packed)); ++ ++#endif /* _MSDOS_FS_H */ +-- +1.9.1 + |