Author: dquintana
Date: Tue Sep  8 00:28:28 2015
New Revision: 69105

URL: http://svn.reactos.org/svn/reactos?rev=69105&view=rev
Log:
[FATTEN]
* Fix the integer types for non-windows platforms (assume they have stdint.h 
instead of assuming embedded).
* Fix file I/O, which was just barely working enough to pass the one test I did.

Modified:
    trunk/reactos/tools/fatten/fatfs/diskio.c
    trunk/reactos/tools/fatten/fatfs/integer.h

Modified: trunk/reactos/tools/fatten/fatfs/diskio.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/fatten/fatfs/diskio.c?rev=69105&r1=69104&r2=69105&view=diff
==============================================================================
--- trunk/reactos/tools/fatten/fatfs/diskio.c   [iso-8859-1] (original)
+++ trunk/reactos/tools/fatten/fatfs/diskio.c   [iso-8859-1] Tue Sep  8 
00:28:28 2015
@@ -31,6 +31,10 @@
             return 0;
 
         driveHandle[0] = fopen(imageFileName, "r+b");
+        if(!driveHandle[0])
+        {
+            driveHandle[0] = fopen(imageFileName, "w+");
+        }
 
         if (driveHandle[0] != NULL)
             return 0;
@@ -80,10 +84,10 @@
 
             result = fread(buff, 512, count, driveHandle[pdrv]);
 
-            if (result == count)
-                return RES_OK;
+            if (result != count)
+                return RES_ERROR;
 
-            return RES_ERROR;
+            return RES_OK;
         }
     }
 
@@ -114,9 +118,8 @@
                 return RES_ERROR;
 
             result = fwrite(buff, 512, count, driveHandle[pdrv]);
-            return RES_ERROR;
 
-            if (result != (512 * count))
+            if (result != count)
                 return RES_ERROR;
 
             return RES_OK;
@@ -155,9 +158,15 @@
                 *(DWORD*)buff = 512;
                 return RES_OK;
             case GET_SECTOR_COUNT:
-                fseek(driveHandle[pdrv], 0, SEEK_END);
-                *(DWORD*)buff = ftell(driveHandle[pdrv]) / 512;
+            {
+                int temp = 0;
+                if(fseek(driveHandle[pdrv], 0, SEEK_END))
+                    printf("fseek failed!\n");
+                else
+                    temp = ftell(driveHandle[pdrv]);
+                *(DWORD*)buff = temp/512;
                 return RES_OK;
+            }
             case SET_SECTOR_COUNT:
             {
                 int count = *(DWORD*)buff;

Modified: trunk/reactos/tools/fatten/fatfs/integer.h
URL: 
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/fatten/fatfs/integer.h?rev=69105&r1=69104&r2=69105&view=diff
==============================================================================
--- trunk/reactos/tools/fatten/fatfs/integer.h  [iso-8859-1] (original)
+++ trunk/reactos/tools/fatten/fatfs/integer.h  [iso-8859-1] Tue Sep  8 
00:28:28 2015
@@ -5,28 +5,30 @@
 #ifndef _FF_INTEGER
 #define _FF_INTEGER
 
-#ifdef _WIN32  /* FatFs development platform */
+#ifdef _WIN32  /* Windows */
 
 #include <windows.h>
 #include <tchar.h>
 
-#else                  /* Embedded platform */
+#else                  /* Unixes */
+
+#include <stdint.h>
 
 /* This type MUST be 8 bit */
-typedef unsigned char  BYTE;
+typedef uint8_t                        BYTE;
 
 /* These types MUST be 16 bit */
-typedef short                  SHORT;
-typedef unsigned short WORD;
-typedef unsigned short WCHAR;
+typedef int16_t                        SHORT;
+typedef uint16_t               WORD;
+typedef uint16_t               WCHAR;
 
 /* These types MUST be 16 bit or 32 bit */
-typedef int                            INT;
-typedef unsigned int   UINT;
+typedef int_fast16_t   INT;
+typedef uint_fast16_t  UINT;
 
 /* These types MUST be 32 bit */
-typedef long                   LONG;
-typedef unsigned long  DWORD;
+typedef int32_t                        LONG;
+typedef uint32_t               DWORD;
 
 #endif
 


Reply via email to