update exfat to latest commits for io issues
diff --git a/exfat/libexfat/exfatfs.h b/exfat/libexfat/exfatfs.h
index 6c58a84..a436daa 100644
--- a/exfat/libexfat/exfatfs.h
+++ b/exfat/libexfat/exfatfs.h
@@ -2,11 +2,12 @@
 	exfatfs.h (29.08.09)
 	Definitions of structures and constants used in exFAT file system.
 
+	Free exFAT implementation.
 	Copyright (C) 2010-2013  Andrew Nayenko
 
-	This program is free software: you can redistribute it and/or modify
+	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
+	the Free Software Foundation, either version 2 of the License, or
 	(at your option) any later version.
 
 	This program is distributed in the hope that it will be useful,
@@ -14,8 +15,9 @@
 	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/>.
+	You should have received a copy of the GNU General Public License along
+	with this program; if not, write to the Free Software Foundation, Inc.,
+	51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 */
 
 #ifndef EXFATFS_H_INCLUDED
@@ -62,7 +64,8 @@
 	uint8_t __unused2[397];			/* 0x71 always 0 */
 	le16_t boot_signature;			/* the value of 0xAA55 */
 }
-__attribute__((__packed__));
+PACKED;
+STATIC_ASSERT(sizeof(struct exfat_super_block) == 512);
 
 #define EXFAT_ENTRY_VALID     0x80
 #define EXFAT_ENTRY_CONTINUED 0x40
@@ -79,7 +82,8 @@
 	uint8_t type;					/* any of EXFAT_ENTRY_xxx */
 	uint8_t data[31];
 }
-__attribute__((__packed__));
+PACKED;
+STATIC_ASSERT(sizeof(struct exfat_entry) == 32);
 
 #define EXFAT_ENAME_MAX 15
 
@@ -90,7 +94,8 @@
 	le32_t start_cluster;
 	le64_t size;					/* in bytes */
 }
-__attribute__((__packed__));
+PACKED;
+STATIC_ASSERT(sizeof(struct exfat_entry_bitmap) == 32);
 
 struct exfat_entry_upcase			/* upper case translation table */
 {
@@ -101,7 +106,8 @@
 	le32_t start_cluster;
 	le64_t size;					/* in bytes */
 }
-__attribute__((__packed__));
+PACKED;
+STATIC_ASSERT(sizeof(struct exfat_entry_upcase) == 32);
 
 struct exfat_entry_label			/* volume label */
 {
@@ -109,7 +115,8 @@
 	uint8_t length;					/* number of characters */
 	le16_t name[EXFAT_ENAME_MAX];	/* in UTF-16LE */
 }
-__attribute__((__packed__));
+PACKED;
+STATIC_ASSERT(sizeof(struct exfat_entry_label) == 32);
 
 #define EXFAT_ATTRIB_RO     0x01
 #define EXFAT_ATTRIB_HIDDEN 0x02
@@ -132,7 +139,8 @@
 	uint8_t mtime_cs;				/* latest modification time in cs */
 	uint8_t __unknown2[10];
 }
-__attribute__((__packed__));
+PACKED;
+STATIC_ASSERT(sizeof(struct exfat_entry_meta1) == 32);
 
 #define EXFAT_FLAG_ALWAYS1		(1u << 0)
 #define EXFAT_FLAG_CONTIGUOUS	(1u << 1)
@@ -150,7 +158,8 @@
 	le32_t start_cluster;
 	le64_t size;					/* in bytes, equals to real_size */
 }
-__attribute__((__packed__));
+PACKED;
+STATIC_ASSERT(sizeof(struct exfat_entry_meta2) == 32);
 
 struct exfat_entry_name				/* file or directory name */
 {
@@ -158,6 +167,7 @@
 	uint8_t __unknown;
 	le16_t name[EXFAT_ENAME_MAX];	/* in UTF-16LE */
 }
-__attribute__((__packed__));
+PACKED;
+STATIC_ASSERT(sizeof(struct exfat_entry_name) == 32);
 
 #endif /* ifndef EXFATFS_H_INCLUDED */