diff options
author | John van Groningen | 2006-06-06 13:07:46 +0000 |
---|---|---|
committer | John van Groningen | 2006-06-06 13:07:46 +0000 |
commit | b80eab7c286ba905a5cfe592bbcd6fdbfd64971f (patch) | |
tree | f107e42005b3516627d62f62c08dcf24c5ab5b81 /wfileIO3.h | |
parent | add garbage collector for 64 bit windows and linux (diff) |
port file I/O to 64 bit windows
Diffstat (limited to 'wfileIO3.h')
-rw-r--r-- | wfileIO3.h | 31 |
1 files changed, 20 insertions, 11 deletions
@@ -1,5 +1,15 @@ -struct file { /* 48 bytes */ +#ifdef A64 +typedef __int64 CLEAN_INT; +typedef unsigned __int64 UNSIGNED_CLEAN_INT; +typedef unsigned __int64 FilePositionT; +#else +typedef long CLEAN_INT; +typedef unsigned long UNSIGNED_CLEAN_INT; +typedef unsigned long FilePositionT; +#endif + +struct file { unsigned char * file_read_p; /* offset 0 */ unsigned char * file_write_p; /* offset 4 */ unsigned char * file_end_read_buffer_p; /* offset 8 */ @@ -11,17 +21,16 @@ struct file { /* 48 bytes */ unsigned char * file_read_buffer_p; unsigned char * file_write_buffer_p; - unsigned long file_offset; - unsigned long file_length; + FilePositionT file_offset; + FilePositionT file_length; char * file_name; - unsigned long file_position; - unsigned long file_position_2; + FilePositionT file_position; + FilePositionT file_position_2; HFILE file_read_refnum; HFILE file_write_refnum; - - long file_fill_offset_56, /* fill to 64 bytes */ + CLEAN_INT file_fill_offset_56, /* fill to 64 bytes */ file_fill_offset_60; }; @@ -31,13 +40,13 @@ extern struct file file_table[]; #define CLEAN_BOOL int extern int file_read_char (struct file *f); -extern CLEAN_BOOL file_read_int (struct file *f,int *i_p); +extern CLEAN_BOOL file_read_int (struct file *f,CLEAN_INT *i_p); extern CLEAN_BOOL file_read_real (struct file *f,double *r_p); -extern unsigned long file_read_characters (struct file *f,unsigned long *length_p,char *s); +extern UNSIGNED_CLEAN_INT file_read_characters (struct file *f,UNSIGNED_CLEAN_INT *length_p,char *s); extern void file_write_char (int c,struct file *f); extern void file_write_char (int c,struct file *f); -extern void file_write_characters (unsigned char *p,int length,struct file *f); -extern void file_write_int (int i,struct file *f); +extern void file_write_characters (unsigned char *p,UNSIGNED_CLEAN_INT length,struct file *f); +extern void file_write_int (CLEAN_INT i,struct file *f); extern void file_write_real (double r,struct file *f); extern CLEAN_BOOL flush_file_buffer (struct file *f); |