diff options
author | Allen Byrne <byrn@hdfgroup.org> | 2011-09-12 14:02:44 (GMT) |
---|---|---|
committer | Allen Byrne <byrn@hdfgroup.org> | 2011-09-12 14:02:44 (GMT) |
commit | 9115bab9e36d72bb395820e38b6bee4c99dcd78c (patch) | |
tree | 2fa4450bca7e33a1466fa2be8afb59a9370b8b64 /src/H5FDwindows.c | |
parent | ee039a03b9fca394251bd1b543df3aa819b13d51 (diff) | |
download | hdf5-9115bab9e36d72bb395820e38b6bee4c99dcd78c.zip hdf5-9115bab9e36d72bb395820e38b6bee4c99dcd78c.tar.gz hdf5-9115bab9e36d72bb395820e38b6bee4c99dcd78c.tar.bz2 |
[svn-r21376] JIRA-HDFFV-2748: Relplace WIN32 macros in source. New H5_HAVE_WIN32_API and H5_HAVE_VISUAL_STUDIO defines only need to be set on windows. Autotools configure is not affected.
Trunk passed for a week and cmake branch has been in place > 3 weeks.
Tested: local linux
Diffstat (limited to 'src/H5FDwindows.c')
-rw-r--r-- | src/H5FDwindows.c | 544 |
1 files changed, 272 insertions, 272 deletions
diff --git a/src/H5FDwindows.c b/src/H5FDwindows.c index 47c7f2d..ba5bd9b 100644 --- a/src/H5FDwindows.c +++ b/src/H5FDwindows.c @@ -15,32 +15,32 @@ /* * Programmer: Scott Wegner <swegner@hdfgroup.org> - * Based on code by Robb Matzke - * May 24, 2007 - * - * Purpose: We would like to create a driver specifically for Windows - * to utilize the Win32 API, and reduce the maintenence demands - * for the other file drivers. Our other motivation is that - * the Windows system calls of the existing sec2 driver differ - * from those on other platforms, and are not 64-bit compatible. - * From the start, this will have the structure very similar - * to our sec2 driver, but make system calls more similar to - * our stdio driver. + * Based on code by Robb Matzke + * May 24, 2007 + * + * Purpose: We would like to create a driver specifically for Windows + * to utilize the Win32 API, and reduce the maintenence demands + * for the other file drivers. Our other motivation is that + * the Windows system calls of the existing sec2 driver differ + * from those on other platforms, and are not 64-bit compatible. + * From the start, this will have the structure very similar + * to our sec2 driver, but make system calls more similar to + * our stdio driver. */ /* Interface initialization */ -#define H5_INTERFACE_INIT_FUNC H5FD_windows_init_interface +#define H5_INTERFACE_INIT_FUNC H5FD_windows_init_interface -#include "H5private.h" /* Generic Functions */ -#include "H5Eprivate.h" /* Error handling */ -#include "H5Fprivate.h" /* File access */ -#include "H5FDprivate.h" /* File drivers */ -#include "H5FDwindows.h" /* Windows file driver */ -#include "H5FLprivate.h" /* Free Lists */ -#include "H5Iprivate.h" /* IDs */ -#include "H5MMprivate.h" /* Memory management */ -#include "H5Pprivate.h" /* Property lists */ +#include "H5private.h" /* Generic Functions */ +#include "H5Eprivate.h" /* Error handling */ +#include "H5Fprivate.h" /* File access */ +#include "H5FDprivate.h" /* File drivers */ +#include "H5FDwindows.h" /* Windows file driver */ +#include "H5FLprivate.h" /* Free Lists */ +#include "H5Iprivate.h" /* IDs */ +#include "H5MMprivate.h" /* Memory management */ +#include "H5Pprivate.h" /* Property lists */ #ifdef H5_HAVE_WINDOWS @@ -48,9 +48,9 @@ static hid_t H5FD_WINDOWS_g = 0; /* File operations */ -#define OP_UNKNOWN 0 -#define OP_READ 1 -#define OP_WRITE 2 +#define OP_UNKNOWN 0 +#define OP_READ 1 +#define OP_WRITE 2 /* * The description of a file belonging to this driver. The `eoa' and `eof' @@ -65,23 +65,23 @@ static hid_t H5FD_WINDOWS_g = 0; * occurs), and `op' will be set to H5F_OP_UNKNOWN. */ typedef struct H5FD_windows_t { - H5FD_t pub; /*public stuff, must be first */ - /* - * .NET doesn't support our 64-bit safe stdio functions, - * so we will use io.h functions instead. + H5FD_t pub; /*public stuff, must be first */ + /* + * .NET doesn't support our 64-bit safe stdio functions, + * so we will use io.h functions instead. */ #ifndef WINDOWS_USE_STDIO - int fd; /*the file descriptor */ + int fd; /*the file descriptor */ #else - FILE *fp; /*the file handle */ + FILE *fp; /*the file handle */ #endif /*MSC_VER */ - haddr_t eoa; /*end of allocated region */ - haddr_t eof; /*end of file; current file size*/ - haddr_t pos; /*current file I/O position */ - int op; /*last operation */ - unsigned write_access; /*flag to indicate the file was opened with write access */ + haddr_t eoa; /*end of allocated region */ + haddr_t eof; /*end of file; current file size*/ + haddr_t pos; /*current file I/O position */ + int op; /*last operation */ + unsigned write_access; /*flag to indicate the file was opened with write access */ /* - * On _WIN32 the low-order word of a unique identifier associated with the + * On H5_HAVE_WIN32_API the low-order word of a unique identifier associated with the * file and the volume serial number uniquely identify a file. This number * may change when the system is restarted or when the * file is opened. After a process opens a file, the identifier is @@ -100,83 +100,83 @@ typedef struct H5FD_windows_t { /* These are used by the macros below */ -#define file_offset_t __int64 -#define fseek_offset_t __int64 +#define file_offset_t __int64 +#define fseek_offset_t __int64 /* * These macros check for overflow of various quantities. These macros * assume that fseek_offset_t is signed and haddr_t and size_t are unsigned. * - * ADDR_OVERFLOW: Checks whether a file address of type `haddr_t' - * is too large to be represented by the second argument - * of the file seek function. + * ADDR_OVERFLOW: Checks whether a file address of type `haddr_t' + * is too large to be represented by the second argument + * of the file seek function. * - * SIZE_OVERFLOW: Checks whether a buffer size of type `hsize_t' is too - * large to be represented by the `size_t' type. + * SIZE_OVERFLOW: Checks whether a buffer size of type `hsize_t' is too + * large to be represented by the `size_t' type. * - * REGION_OVERFLOW: Checks whether an address and size pair describe data - * which can be addressed entirely by the second - * argument of the file seek function. + * REGION_OVERFLOW: Checks whether an address and size pair describe data + * which can be addressed entirely by the second + * argument of the file seek function. */ #define MAXADDR (((haddr_t)1<<(8*sizeof(file_offset_t)-1))-1) -#define ADDR_OVERFLOW(A) (HADDR_UNDEF==(A) || \ - ((A) & ~(haddr_t)MAXADDR)) -#define SIZE_OVERFLOW(Z) ((Z) & ~(hsize_t)MAXADDR) -#define REGION_OVERFLOW(A,Z) (ADDR_OVERFLOW(A) || SIZE_OVERFLOW(Z) || \ - HADDR_UNDEF==(A)+(Z) || \ - (fseek_offset_t)((A)+(Z))<(fseek_offset_t)(A)) +#define ADDR_OVERFLOW(A) (HADDR_UNDEF==(A) || \ + ((A) & ~(haddr_t)MAXADDR)) +#define SIZE_OVERFLOW(Z) ((Z) & ~(hsize_t)MAXADDR) +#define REGION_OVERFLOW(A,Z) (ADDR_OVERFLOW(A) || SIZE_OVERFLOW(Z) || \ + HADDR_UNDEF==(A)+(Z) || \ + (fseek_offset_t)((A)+(Z))<(fseek_offset_t)(A)) /* Prototypes */ static H5FD_t *H5FD_windows_open(const char *name, unsigned flags, hid_t fapl_id, - haddr_t maxaddr); + haddr_t maxaddr); static herr_t H5FD_windows_close(H5FD_t *_file); static int H5FD_windows_cmp(const H5FD_t *_f1, const H5FD_t *_f2); static herr_t H5FD_windows_query(const H5FD_t *_f1, unsigned long *flags); static haddr_t H5FD_windows_alloc(H5FD_t *_file, H5FD_mem_t type, hid_t dxpl_id, - hsize_t size); + hsize_t size); static haddr_t H5FD_windows_get_eoa(const H5FD_t *_file, H5FD_mem_t type); static herr_t H5FD_windows_set_eoa(H5FD_t *_file, H5FD_mem_t type, haddr_t addr); static haddr_t H5FD_windows_get_eof(const H5FD_t *_file); static herr_t H5FD_windows_get_handle(H5FD_t *_file, hid_t fapl, void** file_handle); static herr_t H5FD_windows_read(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr, - size_t size, void *buf); + size_t size, void *buf); static herr_t H5FD_windows_write(H5FD_t *_file, H5FD_mem_t type, hid_t fapl_id, haddr_t addr, - size_t size, const void *buf); + size_t size, const void *buf); static herr_t H5FD_windows_flush(H5FD_t *_file, hid_t dxpl_id, unsigned closing); static herr_t H5FD_windows_truncate(H5FD_t *_file, hid_t dxpl_id, hbool_t closing); static const H5FD_class_t H5FD_windows_g = { - "windows", /*name */ - MAXADDR, /*maxaddr */ - H5F_CLOSE_WEAK, /* fc_degree */ - NULL, /*sb_size */ - NULL, /*sb_encode */ - NULL, /*sb_decode */ - 0, /*fapl_size */ - NULL, /*fapl_get */ - NULL, /*fapl_copy */ - NULL, /*fapl_free */ - 0, /*dxpl_size */ - NULL, /*dxpl_copy */ - NULL, /*dxpl_free */ - H5FD_windows_open, /*open */ - H5FD_windows_close, /*close */ - H5FD_windows_cmp, /*cmp */ - H5FD_windows_query, /*query */ - NULL, /*get_type_map */ - NULL, /*alloc */ - NULL, /*free */ - H5FD_windows_get_eoa, /*get_eoa */ - H5FD_windows_set_eoa, /*set_eoa */ - H5FD_windows_get_eof, /*get_eof */ - H5FD_windows_get_handle, /*get_handle */ - H5FD_windows_read, /*read */ - H5FD_windows_write, /*write */ - H5FD_windows_flush, /*flush */ - H5FD_windows_truncate, /*truncate */ - NULL, /*lock */ - NULL, /*unlock */ - H5FD_FLMAP_SINGLE /*fl_map */ + "windows", /*name */ + MAXADDR, /*maxaddr */ + H5F_CLOSE_WEAK, /* fc_degree */ + NULL, /*sb_size */ + NULL, /*sb_encode */ + NULL, /*sb_decode */ + 0, /*fapl_size */ + NULL, /*fapl_get */ + NULL, /*fapl_copy */ + NULL, /*fapl_free */ + 0, /*dxpl_size */ + NULL, /*dxpl_copy */ + NULL, /*dxpl_free */ + H5FD_windows_open, /*open */ + H5FD_windows_close, /*close */ + H5FD_windows_cmp, /*cmp */ + H5FD_windows_query, /*query */ + NULL, /*get_type_map */ + NULL, /*alloc */ + NULL, /*free */ + H5FD_windows_get_eoa, /*get_eoa */ + H5FD_windows_set_eoa, /*set_eoa */ + H5FD_windows_get_eof, /*get_eof */ + H5FD_windows_get_handle, /*get_handle */ + H5FD_windows_read, /*read */ + H5FD_windows_write, /*write */ + H5FD_windows_flush, /*flush */ + H5FD_windows_truncate, /*truncate */ + NULL, /*lock */ + NULL, /*unlock */ + H5FD_FLMAP_SINGLE /*fl_map */ }; /* Declare a free list to manage the H5FD_windows_t struct */ @@ -204,16 +204,16 @@ H5FD_windows_init_interface(void) } /* H5FD_windows_init_interface() */ /*------------------------------------------------------------------------- - * Function: H5FD_windows_init + * Function: H5FD_windows_init * - * Purpose: Initialize this driver by registering the driver with the - * library. + * Purpose: Initialize this driver by registering the driver with the + * library. * - * Return: Success: The driver ID for the windows driver. - * Failure: Negative. + * Return: Success: The driver ID for the windows driver. + * Failure: Negative. * - * Programmer: Scott Wegner - * Based on code by Robb Matzke + * Programmer: Scott Wegner + * Based on code by Robb Matzke * Thursday, May 24, 2007 * *------------------------------------------------------------------------- @@ -236,14 +236,14 @@ done: } /* end H5FD_windows_init() */ /*--------------------------------------------------------------------------- - * Function: H5FD_windows_term + * Function: H5FD_windows_term * - * Purpose: Shut down the VFD + * Purpose: Shut down the VFD * - * Return: <none> + * Return: <none> * * Programmer: Scott Wegner - * Based on code by Quincey Koziol + * Based on code by Quincey Koziol * Thursday, May 24 2007 * * Modification: @@ -262,17 +262,17 @@ H5FD_windows_term(void) } /* end H5FD_windows_term() */ /*------------------------------------------------------------------------- - * Function: H5Pset_fapl_windows + * Function: H5Pset_fapl_windows * - * Purpose: Modify the file access property list to use the H5FD_WINDOWS - * driver defined in this source file. There are no driver - * specific properties. + * Purpose: Modify the file access property list to use the H5FD_WINDOWS + * driver defined in this source file. There are no driver + * specific properties. * - * Return: Non-negative on success/Negative on failure + * Return: Non-negative on success/Negative on failure * - * Programmer: Scott Wegner - * Based on code by Robb Matzke - * Thursday, May 24 2007 + * Programmer: Scott Wegner + * Based on code by Robb Matzke + * Thursday, May 24 2007 * * Modifications: * @@ -297,18 +297,18 @@ done: } /*------------------------------------------------------------------------- - * Function: H5FD_windows_open + * Function: H5FD_windows_open * - * Purpose: Create and/or opens a Windows file as an HDF5 file. + * Purpose: Create and/or opens a Windows file as an HDF5 file. * - * Return: Success: A pointer to a new file data structure. The - * public fields will be initialized by the - * caller, which is always H5FD_open(). + * Return: Success: A pointer to a new file data structure. The + * public fields will be initialized by the + * caller, which is always H5FD_open(). * - * Failure: NULL + * Failure: NULL * - * Programmer: Scott Wegner - * Based on code by Robb Matzke + * Programmer: Scott Wegner + * Based on code by Robb Matzke * Thursday, May 24 2007 * * Modifications: @@ -318,19 +318,19 @@ done: /* ARGSUSED */ static H5FD_t * H5FD_windows_open(const char *name, unsigned flags, hid_t UNUSED fapl_id, - haddr_t maxaddr) + haddr_t maxaddr) { int fd = -1; - FILE *f = NULL; - H5FD_windows_t *file = NULL; - HANDLE filehandle; + FILE *f = NULL; + H5FD_windows_t *file = NULL; + HANDLE filehandle; struct _BY_HANDLE_FILE_INFORMATION fileinfo; - H5FD_t *ret_value; + H5FD_t *ret_value; struct _stati64 sb; #ifndef WINDOWS_USE_STDIO int o_flags; #else - unsigned write_access = 0; + unsigned write_access = 0; #endif /* WINDOWS_USE_STDIO */ FUNC_ENTER_NOAPI(H5FD_windows_open, NULL) @@ -352,8 +352,8 @@ H5FD_windows_open(const char *name, unsigned flags, hid_t UNUSED fapl_id, if (H5F_ACC_TRUNC & flags) o_flags |= O_TRUNC; if (H5F_ACC_CREAT & flags) o_flags |= O_CREAT; if (H5F_ACC_EXCL & flags) o_flags |= O_EXCL; - /* Windows needs O_BINARY to correctly handle eol characters */ - o_flags |= O_BINARY; + /* Windows needs O_BINARY to correctly handle eol characters */ + o_flags |= O_BINARY; /* Open the file */ if ((fd=_open(name, o_flags, 0666))<0) @@ -362,33 +362,33 @@ H5FD_windows_open(const char *name, unsigned flags, hid_t UNUSED fapl_id, HSYS_GOTO_ERROR(H5E_FILE, H5E_BADFILE, NULL, "unable to fstat file") #else /* WINDOWS_USE_STDIO */ - /* Translate our flags into a mode, and open the file */ + /* Translate our flags into a mode, and open the file */ if (_access_s(name, F_OK)) { if ((flags & H5F_ACC_CREAT) && (flags & H5F_ACC_RDWR)) { f = fopen(name, "wb+"); write_access=1; /* Note the write access */ } else - HSYS_GOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "file doesn't exist and CREAT wasn't specified") + HSYS_GOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "file doesn't exist and CREAT wasn't specified") } else if ((flags & H5F_ACC_CREAT) && (flags & H5F_ACC_EXCL)) { - HSYS_GOTO_ERROR(H5E_FILE, H5E_FILEEXISTS, NULL, "file exists but CREAT and EXCL were specified") + HSYS_GOTO_ERROR(H5E_FILE, H5E_FILEEXISTS, NULL, "file exists but CREAT and EXCL were specified") } else if (flags & H5F_ACC_RDWR) { - if (flags & H5F_ACC_TRUNC) + if (flags & H5F_ACC_TRUNC) f = fopen(name, "wb+"); - else + else f = fopen(name, "rb+"); write_access=1; /* Note the write access */ } else f = fopen(name, "rb"); if (!f) - HSYS_GOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "fsopen failed") + HSYS_GOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "fsopen failed") if (_stati64(name, &sb) == -1) HSYS_GOTO_ERROR(H5E_FILE, H5E_BADFILE, NULL, "unable to stat file") #endif /* WINDOWS_USE_STDIO */ - /* Create the new file struct */ + /* Create the new file struct */ if (NULL==(file=H5FL_CALLOC(H5FD_windows_t))) HGOTO_ERROR(H5E_RESOURCE, H5E_NOSPACE, NULL, "unable to allocate file struct") @@ -400,8 +400,8 @@ H5FD_windows_open(const char *name, unsigned flags, hid_t UNUSED fapl_id, file->fd = fd; #else file->fp = f; - if((fd = _fileno(f)) == -1) - HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to get file descriptor for file") + if((fd = _fileno(f)) == -1) + HGOTO_ERROR(H5E_FILE, H5E_CANTOPENFILE, NULL, "unable to get file descriptor for file") file->write_access=write_access; /* Note the write_access for later */ #endif /* WINDOWS_USE_STDIO */ @@ -441,7 +441,7 @@ done: _close(fd); #else if(f) - fclose(file->fp); + fclose(file->fp); #endif /* WINDOWS_USE_STDIO */ } /* end if */ @@ -449,16 +449,16 @@ done: } /*------------------------------------------------------------------------- - * Function: H5FD_windows_close + * Function: H5FD_windows_close * - * Purpose: Closes a Windows file. + * Purpose: Closes a Windows file. * - * Return: Success: 0 + * Return: Success: 0 * - * Failure: -1, file not closed. + * Failure: -1, file not closed. * - * Programmer: Scott Wegner - * Based on code by Robb Matzke + * Programmer: Scott Wegner + * Based on code by Robb Matzke * Thursday, May 24 2007 * * Modifications: @@ -468,8 +468,8 @@ done: static herr_t H5FD_windows_close(H5FD_t *_file) { - H5FD_windows_t *file = (H5FD_windows_t*)_file; - herr_t ret_value=SUCCEED; /* Return value */ + H5FD_windows_t *file = (H5FD_windows_t*)_file; + herr_t ret_value=SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(H5FD_windows_close, FAIL) @@ -487,18 +487,18 @@ done: } /*------------------------------------------------------------------------- - * Function: H5FD_windows_cmp + * Function: H5FD_windows_cmp * - * Purpose: Compares two files belonging to this driver using an - * arbitrary (but consistent) ordering. + * Purpose: Compares two files belonging to this driver using an + * arbitrary (but consistent) ordering. * - * Return: Success: A value like strcmp() + * Return: Success: A value like strcmp() * - * Failure: never fails (arguments were checked by the - * caller). + * Failure: never fails (arguments were checked by the + * caller). * - * Programmer: Scott Wegner - * Based on code by Robb Matzke + * Programmer: Scott Wegner + * Based on code by Robb Matzke * Thursday, May 24 2007 * * Modifications: @@ -508,14 +508,14 @@ done: static int H5FD_windows_cmp(const H5FD_t *_f1, const H5FD_t *_f2) { - const H5FD_windows_t *f1 = (const H5FD_windows_t*)_f1; - const H5FD_windows_t *f2 = (const H5FD_windows_t*)_f2; + const H5FD_windows_t *f1 = (const H5FD_windows_t*)_f1; + const H5FD_windows_t *f2 = (const H5FD_windows_t*)_f2; int ret_value=0; FUNC_ENTER_NOAPI(H5FD_windows_cmp, H5FD_VFD_DEFAULT) - if (f1->volumeserialnumber < f2->volumeserialnumber) HGOTO_DONE(-1) - if (f1->volumeserialnumber > f2->volumeserialnumber) HGOTO_DONE(1) + if (f1->volumeserialnumber < f2->volumeserialnumber) HGOTO_DONE(-1) + if (f1->volumeserialnumber > f2->volumeserialnumber) HGOTO_DONE(1) if (f1->fileindexhi < f2->fileindexhi) HGOTO_DONE(-1) if (f1->fileindexhi > f2->fileindexhi) HGOTO_DONE(1) @@ -529,17 +529,17 @@ done: } /*------------------------------------------------------------------------- - * Function: H5FD_windows_query + * Function: H5FD_windows_query * - * Purpose: Set the flags that this VFL driver is capable of supporting. + * Purpose: Set the flags that this VFL driver is capable of supporting. * (listed in H5FDpublic.h) * - * Return: Success: non-negative + * Return: Success: non-negative * - * Failure: negative + * Failure: negative * - * Programmer: Scott Wegner - Based on code by Quincey Koziol + * Programmer: Scott Wegner + Based on code by Quincey Koziol * Thursday, May 24 2007 * *------------------------------------------------------------------------- @@ -554,10 +554,10 @@ H5FD_windows_query(const H5FD_t *_file, unsigned long *flags /* out */) /* Set the VFL feature flags that this driver supports */ if(flags) { *flags = 0; - *flags|=H5FD_FEAT_AGGREGATE_METADATA; /* OK to aggregate metadata allocations */ - *flags|=H5FD_FEAT_ACCUMULATE_METADATA; /* OK to accumulate metadata for faster writes */ - *flags|=H5FD_FEAT_DATA_SIEVE; /* OK to perform data sieving for faster raw data reads & writes */ - *flags|=H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */ + *flags|=H5FD_FEAT_AGGREGATE_METADATA; /* OK to aggregate metadata allocations */ + *flags|=H5FD_FEAT_ACCUMULATE_METADATA; /* OK to accumulate metadata for faster writes */ + *flags|=H5FD_FEAT_DATA_SIEVE; /* OK to perform data sieving for faster raw data reads & writes */ + *flags|=H5FD_FEAT_AGGREGATE_SMALLDATA; /* OK to aggregate "small" raw data allocations */ /* Check for flags that are set by h5repart */ if(file->fam_to_sec2) @@ -569,18 +569,18 @@ done: } /* end H5FD_windows_query() */ /*------------------------------------------------------------------------- - * Function: H5FD_windows_get_eoa + * Function: H5FD_windows_get_eoa * - * Purpose: Gets the end-of-address marker for the file. The EOA marker - * is the first address past the last byte allocated in the - * format address space. + * Purpose: Gets the end-of-address marker for the file. The EOA marker + * is the first address past the last byte allocated in the + * format address space. * - * Return: Success: The end-of-address marker. + * Return: Success: The end-of-address marker. * - * Failure: HADDR_UNDEF + * Failure: HADDR_UNDEF * - * Programmer: Scott Wegner - * Based on code by Robb Matzke + * Programmer: Scott Wegner + * Based on code by Robb Matzke * Thursday, May 24 2007 * * Modifications: @@ -590,7 +590,7 @@ done: static haddr_t H5FD_windows_get_eoa(const H5FD_t *_file, H5FD_mem_t UNUSED type) { - const H5FD_windows_t *file = (const H5FD_windows_t*)_file; + const H5FD_windows_t *file = (const H5FD_windows_t*)_file; haddr_t ret_value; /* Return value */ FUNC_ENTER_NOAPI(H5FD_windows_get_eoa, HADDR_UNDEF) @@ -604,18 +604,18 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_windows_set_eoa + * Function: H5FD_windows_set_eoa * - * Purpose: Set the end-of-address marker for the file. This function is - * called shortly after an existing HDF5 file is opened in order - * to tell the driver where the end of the HDF5 data is located. + * Purpose: Set the end-of-address marker for the file. This function is + * called shortly after an existing HDF5 file is opened in order + * to tell the driver where the end of the HDF5 data is located. * - * Return: Success: 0 + * Return: Success: 0 * - * Failure: -1 + * Failure: -1 * - * Programmer: Scott Wegner - * Based on code by Robb Matzke + * Programmer: Scott Wegner + * Based on code by Robb Matzke * Thursday, July 29, 1999 * * Modifications: @@ -625,7 +625,7 @@ done: static herr_t H5FD_windows_set_eoa(H5FD_t *_file, H5FD_mem_t UNUSED type, haddr_t addr) { - H5FD_windows_t *file = (H5FD_windows_t*)_file; + H5FD_windows_t *file = (H5FD_windows_t*)_file; herr_t ret_value=SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(H5FD_windows_set_eoa, FAIL) @@ -637,20 +637,20 @@ done: } /*------------------------------------------------------------------------- - * Function: H5FD_windows_get_eof + * Function: H5FD_windows_get_eof * - * Purpose: Returns the end-of-file marker, which is the greater of - * either the Windows end-of-file or the HDF5 end-of-address - * markers. + * Purpose: Returns the end-of-file marker, which is the greater of + * either the Windows end-of-file or the HDF5 end-of-address + * markers. * - * Return: Success: End of file address, the first address past - * the end of the "file", either the Unix file - * or the HDF5 file. + * Return: Success: End of file address, the first address past + * the end of the "file", either the Unix file + * or the HDF5 file. * - * Failure: HADDR_UNDEF + * Failure: HADDR_UNDEF * - * Programmer: Scott Wegner - * Based on code by Robb Matzke + * Programmer: Scott Wegner + * Based on code by Robb Matzke * Thursday, May 24 2007 * * Modifications: @@ -660,7 +660,7 @@ done: static haddr_t H5FD_windows_get_eof(const H5FD_t *_file) { - const H5FD_windows_t *file = (const H5FD_windows_t*)_file; + const H5FD_windows_t *file = (const H5FD_windows_t*)_file; haddr_t ret_value; /* Return value */ FUNC_ENTER_NOAPI(H5FD_windows_get_eof, HADDR_UNDEF) @@ -674,15 +674,15 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_windows_get_handle + * Function: H5FD_windows_get_handle * - * Purpose: Returns the file handle of windows file driver. + * Purpose: Returns the file handle of windows file driver. * - * Returns: Non-negative if succeed or negative if fails. + * Returns: Non-negative if succeed or negative if fails. * - * Programmer: Scott Wegner - Based on code by Raymond Lu - * Thursday, May 24 2007 + * Programmer: Scott Wegner + Based on code by Raymond Lu + * Thursday, May 24 2007 * * Modifications: * @@ -704,7 +704,7 @@ H5FD_windows_get_handle(H5FD_t *_file, hid_t UNUSED fapl, void** file_handle) #else *file_handle = &(file->fp); #endif /* WINDOWS_USE_STDIO */ - if(*file_handle==NULL) + if(*file_handle==NULL) HGOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "get handle failed") @@ -713,16 +713,16 @@ done: } /*------------------------------------------------------------------------- - * Function: H5FD_windows_alloc + * Function: H5FD_windows_alloc * - * Purpose: Allocates file memory. + * Purpose: Allocates file memory. * - * Return: Success: Address of new memory + * Return: Success: Address of new memory * - * Failure: HADDR_UNDEF + * Failure: HADDR_UNDEF * - * Programmer: Scott Wegner - Based on code by Raymond Lu + * Programmer: Scott Wegner + Based on code by Raymond Lu * Thursday, May 24 2007 * * Modifications: @@ -732,8 +732,8 @@ done: static haddr_t H5FD_windows_alloc(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, hsize_t size) { - H5FD_windows_t *file = (H5FD_windows_t*)_file; - haddr_t addr; + H5FD_windows_t *file = (H5FD_windows_t*)_file; + haddr_t addr; haddr_t ret_value; /* Return value */ FUNC_ENTER_NOAPI(H5FD_windows_alloc, HADDR_UNDEF) @@ -761,19 +761,19 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_windows_read + * Function: H5FD_windows_read * - * Purpose: Reads SIZE bytes of data from FILE beginning at address ADDR - * into buffer BUF according to data transfer properties in - * DXPL_ID. + * Purpose: Reads SIZE bytes of data from FILE beginning at address ADDR + * into buffer BUF according to data transfer properties in + * DXPL_ID. * - * Return: Success: Zero. Result is stored in caller-supplied - * buffer BUF. + * Return: Success: Zero. Result is stored in caller-supplied + * buffer BUF. * - * Failure: -1, Contents of buffer BUF are undefined. + * Failure: -1, Contents of buffer BUF are undefined. * - * Programmer: Scott Wegner - Based on code by Robb Matzke + * Programmer: Scott Wegner + Based on code by Robb Matzke * Thursday, May 24 2007 * * Modifications: @@ -783,11 +783,11 @@ done: /* ARGSUSED */ static herr_t H5FD_windows_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, haddr_t addr, - size_t size, void *buf/*out*/) + size_t size, void *buf/*out*/) { - H5FD_windows_t *file = (H5FD_windows_t*)_file; - int nbytes; - herr_t ret_value=SUCCEED; /* Return value */ + H5FD_windows_t *file = (H5FD_windows_t*)_file; + int nbytes; + herr_t ret_value=SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(H5FD_windows_read, FAIL) @@ -805,14 +805,14 @@ H5FD_windows_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, h /* Seek to the correct location */ if ((addr!=file->pos || OP_READ!=file->op)) #ifndef WINDOWS_USE_STDIO - if (_lseeki64(file->fd, addr, SEEK_SET) == -1) { + if (_lseeki64(file->fd, addr, SEEK_SET) == -1) { #else if (_fseeki64(file->fp, addr, SEEK_SET) == -1) { #endif /* WINDOWS_USE_STDIO */ file->op = OP_UNKNOWN; file->pos = HADDR_UNDEF; - HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position") - } + HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position") + } /* * Read data, being careful of interrupted system calls, partial results, @@ -821,7 +821,7 @@ H5FD_windows_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, h while (size>0) { #ifndef WINDOWS_USE_STDIO do { - nbytes = _read(file->fd, buf, (unsigned)(size <= WINDOWS_MAX_BUF ? size: WINDOWS_MAX_BUF)); + nbytes = _read(file->fd, buf, (unsigned)(size <= WINDOWS_MAX_BUF ? size: WINDOWS_MAX_BUF)); } while (-1==nbytes && EINTR==errno); if (-1==nbytes) /* error */ HSYS_GOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "file read failed") @@ -834,15 +834,15 @@ H5FD_windows_read(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, h do { nbytes = fread(buf,(size_t)1,(size <= WINDOWS_MAX_BUF ? size: WINDOWS_MAX_BUF),file->fp); } while (!nbytes && EINTR==errno); - if(!nbytes) { + if(!nbytes) { if (ferror(file->fp)) /* error */ HSYS_GOTO_ERROR(H5E_IO, H5E_READERROR, FAIL, "file read failed") - if (feof(file->fp)) { - /* end of file but not end of format address space */ - HDmemset(buf, 0, size); - break; - } - } + if (feof(file->fp)) { + /* end of file but not end of format address space */ + HDmemset(buf, 0, size); + break; + } + } #endif /* WINDOWS_USE_STDIO */ assert(nbytes>=0); assert((size_t)nbytes<=size); @@ -869,18 +869,18 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_windows_write + * Function: H5FD_windows_write * - * Purpose: Writes SIZE bytes of data to FILE beginning at address ADDR - * from buffer BUF according to data transfer properties in - * DXPL_ID. + * Purpose: Writes SIZE bytes of data to FILE beginning at address ADDR + * from buffer BUF according to data transfer properties in + * DXPL_ID. * - * Return: Success: Zero + * Return: Success: Zero * - * Failure: -1 + * Failure: -1 * - * Programmer: Scott Wegner - * Based on code by Robb Matzke + * Programmer: Scott Wegner + * Based on code by Robb Matzke * Thursday, May 24 2007 * * Modifications: @@ -890,10 +890,10 @@ done: /* ARGSUSED */ static herr_t H5FD_windows_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, haddr_t addr, - size_t size, const void *buf) + size_t size, const void *buf) { - H5FD_windows_t *file = (H5FD_windows_t*)_file; - ssize_t nbytes; + H5FD_windows_t *file = (H5FD_windows_t*)_file; + ssize_t nbytes; herr_t ret_value=SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(H5FD_windows_write, FAIL) @@ -911,23 +911,23 @@ H5FD_windows_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, /* Seek to the correct location */ if ((addr!=file->pos || OP_WRITE!=file->op)) - { + { #ifndef WINDOWS_USE_STDIO - if (_lseeki64(file->fd, addr, SEEK_SET) == -1) { + if (_lseeki64(file->fd, addr, SEEK_SET) == -1) { #else if (_fseeki64(file->fp, addr, SEEK_SET) == -1) { #endif /* WINDOWS_USE_STDIO */ file->op = OP_UNKNOWN; file->pos = HADDR_UNDEF; - HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position") - } - } + HSYS_GOTO_ERROR(H5E_IO, H5E_SEEKERROR, FAIL, "unable to seek to proper position") + } + } /* * Write the data, being careful of interrupted system calls and partial * results */ - while (size>0) { + while (size>0) { do { #ifndef WINDOWS_USE_STDIO nbytes = _write(file->fd, buf, (unsigned)(size <= WINDOWS_MAX_BUF ? size: WINDOWS_MAX_BUF)); @@ -936,9 +936,9 @@ H5FD_windows_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, #else - /* Write 1GB or less at a time */ - nbytes = fwrite(buf, 1, (size <= WINDOWS_MAX_BUF ? size: WINDOWS_MAX_BUF),file->fp); - } while (!nbytes && EINTR==errno); + /* Write 1GB or less at a time */ + nbytes = fwrite(buf, 1, (size <= WINDOWS_MAX_BUF ? size: WINDOWS_MAX_BUF),file->fp); + } while (!nbytes && EINTR==errno); if (!nbytes) /* error */ #endif /* WINDOWS_USE_STDIO */ HSYS_GOTO_ERROR(H5E_IO, H5E_WRITEERROR, FAIL, "file write failed") @@ -949,7 +949,7 @@ H5FD_windows_write(H5FD_t *_file, H5FD_mem_t UNUSED type, hid_t UNUSED dxpl_id, H5_CHECK_OVERFLOW(nbytes,ssize_t,haddr_t); addr += (haddr_t)nbytes; buf = (const char*)buf + nbytes; - } + } /* Update current position and eof */ file->pos = addr; @@ -969,16 +969,16 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_windows_flush + * Function: H5FD_windows_flush * - * Purpose: Makes sure that the true file size is the same (or larger) - * than the end-of-address. + * Purpose: Makes sure that the true file size is the same (or larger) + * than the end-of-address. * - * Return: Success: Non-negative - * Failure: Negative + * Return: Success: Non-negative + * Failure: Negative * - * Programmer: Scott Wegner - * Based on code by Robb Matzke + * Programmer: Scott Wegner + * Based on code by Robb Matzke * Thursday, May 24 2007 * *------------------------------------------------------------------------- @@ -987,8 +987,8 @@ done: static herr_t H5FD_windows_flush(H5FD_t *_file, hid_t UNUSED dxpl_id, unsigned closing) { - H5FD_windows_t *file = (H5FD_windows_t*)_file; - herr_t ret_value = SUCCEED; /* Return value */ + H5FD_windows_t *file = (H5FD_windows_t*)_file; + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(H5FD_windows_flush, FAIL) @@ -1015,16 +1015,16 @@ done: /*------------------------------------------------------------------------- - * Function: H5FD_windows_truncate + * Function: H5FD_windows_truncate * - * Purpose: Makes sure that the true file size is the same (or larger) - * than the end-of-address. + * Purpose: Makes sure that the true file size is the same (or larger) + * than the end-of-address. * - * Return: Success: Non-negative - * Failure: Negative + * Return: Success: Non-negative + * Failure: Negative * - * Programmer: Scott Wegner - * Based on code by Robb Matzke + * Programmer: Scott Wegner + * Based on code by Robb Matzke * Thursday, May 24 2007 * *------------------------------------------------------------------------- @@ -1033,14 +1033,14 @@ done: static herr_t H5FD_windows_truncate(H5FD_t *_file, hid_t UNUSED dxpl_id, hbool_t UNUSED closing) { - H5FD_windows_t *file = (H5FD_windows_t*)_file; + H5FD_windows_t *file = (H5FD_windows_t*)_file; #ifndef WINDOWS_USE_STDIO - LARGE_INTEGER li; - HANDLE filehandle; + LARGE_INTEGER li; + HANDLE filehandle; #else - int fd; + int fd; #endif /* WINDOWS_USE_STDIO */ - herr_t ret_value = SUCCEED; /* Return value */ + herr_t ret_value = SUCCEED; /* Return value */ FUNC_ENTER_NOAPI(H5FD_windows_truncate, FAIL) |