Alexandre Julliard : server: Move the functions to extend file to mapping. c since it's the only user.

Alexandre Julliard julliard at winehq.org
Tue Nov 24 12:40:20 CST 2009


Module: wine
Branch: master
Commit: 78d211b3bd61468aa53e3e0b2330b27211c76b02
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=78d211b3bd61468aa53e3e0b2330b27211c76b02

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Nov 23 15:58:25 2009 +0100

server: Move the functions to extend file to mapping.c since it's the only user.

---

 server/file.c    |   42 ------------------------------------------
 server/file.h    |    1 -
 server/mapping.c |   42 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 42 insertions(+), 43 deletions(-)

diff --git a/server/file.c b/server/file.c
index a74de14..01fefdb 100644
--- a/server/file.c
+++ b/server/file.c
@@ -641,48 +641,6 @@ struct file *grab_file_unless_removable( struct file *file )
     return (struct file *)grab_object( file );
 }
 
-/* extend a file beyond the current end of file */
-static int extend_file( struct file *file, file_pos_t new_size )
-{
-    static const char zero;
-    int unix_fd = get_file_unix_fd( file );
-    off_t size = new_size;
-
-    if (unix_fd == -1) return 0;
-
-    if (sizeof(new_size) > sizeof(size) && size != new_size)
-    {
-        set_error( STATUS_INVALID_PARAMETER );
-        return 0;
-    }
-    /* extend the file one byte beyond the requested size and then truncate it */
-    /* this should work around ftruncate implementations that can't extend files */
-    if (pwrite( unix_fd, &zero, 1, size ) != -1)
-    {
-        ftruncate( unix_fd, size );
-        return 1;
-    }
-    file_set_error();
-    return 0;
-}
-
-/* try to grow the file to the specified size */
-int grow_file( struct file *file, file_pos_t size )
-{
-    struct stat st;
-    int unix_fd = get_file_unix_fd( file );
-
-    if (unix_fd == -1) return 0;
-
-    if (fstat( unix_fd, &st ) == -1)
-    {
-        file_set_error();
-        return 0;
-    }
-    if (st.st_size >= size) return 1;  /* already large enough */
-    return extend_file( file, size );
-}
-
 /* create a file */
 DECL_HANDLER(create_file)
 {
diff --git a/server/file.h b/server/file.h
index f59ec9e..21b3879 100644
--- a/server/file.h
+++ b/server/file.h
@@ -110,7 +110,6 @@ extern struct file *get_file_obj( struct process *process, obj_handle_t handle,
 extern int get_file_unix_fd( struct file *file );
 extern int is_same_file( struct file *file1, struct file *file2 );
 extern struct file *grab_file_unless_removable( struct file *file );
-extern int grow_file( struct file *file, file_pos_t size );
 extern struct file *create_temp_file( int access );
 extern void file_set_error(void);
 extern struct security_descriptor *mode_to_sd( mode_t mode, const SID *user, const SID *group );
diff --git a/server/mapping.c b/server/mapping.c
index a303111..39c7f50 100644
--- a/server/mapping.c
+++ b/server/mapping.c
@@ -126,6 +126,48 @@ static void init_page_size(void)
 #define ROUND_SIZE(size)  (((size) + page_mask) & ~page_mask)
 
 
+/* extend a file beyond the current end of file */
+static int extend_file( struct file *file, file_pos_t new_size )
+{
+    static const char zero;
+    int unix_fd = get_file_unix_fd( file );
+    off_t size = new_size;
+
+    if (unix_fd == -1) return 0;
+
+    if (sizeof(new_size) > sizeof(size) && size != new_size)
+    {
+        set_error( STATUS_INVALID_PARAMETER );
+        return 0;
+    }
+    /* extend the file one byte beyond the requested size and then truncate it */
+    /* this should work around ftruncate implementations that can't extend files */
+    if (pwrite( unix_fd, &zero, 1, size ) != -1)
+    {
+        ftruncate( unix_fd, size );
+        return 1;
+    }
+    file_set_error();
+    return 0;
+}
+
+/* try to grow the file to the specified size */
+static int grow_file( struct file *file, file_pos_t size )
+{
+    struct stat st;
+    int unix_fd = get_file_unix_fd( file );
+
+    if (unix_fd == -1) return 0;
+
+    if (fstat( unix_fd, &st ) == -1)
+    {
+        file_set_error();
+        return 0;
+    }
+    if (st.st_size >= size) return 1;  /* already large enough */
+    return extend_file( file, size );
+}
+
 /* find the shared PE mapping for a given mapping */
 static struct file *get_shared_file( struct mapping *mapping )
 {




More information about the wine-cvs mailing list