only include utime.h when necessary
[rrdtool.git] / src / rrd_open.c
index 1654514..062de23 100644 (file)
@@ -6,20 +6,22 @@
  * $Id$
  *****************************************************************************/
 
  * $Id$
  *****************************************************************************/
 
+#ifdef WIN32
 #include <stdlib.h>
 #include <fcntl.h>
 #include <sys/stat.h>
 #include <stdlib.h>
 #include <fcntl.h>
 #include <sys/stat.h>
+#endif
+
+#ifdef HAVE_BROKEN_MS_ASYNC
+#include <sys/types.h>
 #include <utime.h>
 #include <utime.h>
+#endif
 
 #include "rrd_tool.h"
 #include "unused.h"
 #define MEMBLK 8192
 
 #ifdef WIN32
 
 #include "rrd_tool.h"
 #include "unused.h"
 #define MEMBLK 8192
 
 #ifdef WIN32
-#      define random() rand()
-#      define srandom(x) srand(x)
-#      define getpid() 0
-
 #define        _LK_UNLCK       0       /* Unlock */
 #define        _LK_LOCK        1       /* Lock */
 #define        _LK_NBLCK       2       /* Non-blocking lock */
 #define        _LK_UNLCK       0       /* Unlock */
 #define        _LK_LOCK        1       /* Lock */
 #define        _LK_NBLCK       2       /* Non-blocking lock */
 #endif
 #endif
 
 #endif
 #endif
 
-long int  rra_random_row(
-    rra_def_t *);
-
-
 /* Open a database file, return its header and an open filehandle,
  * positioned to the first cdp in the first rra.
  * In the error path of rrd_open, only rrd_free(&rrd) has to be called
 /* Open a database file, return its header and an open filehandle,
  * positioned to the first cdp in the first rra.
  * In the error path of rrd_open, only rrd_free(&rrd) has to be called
@@ -115,15 +113,7 @@ rrd_file_t *rrd_open(
     /* Are we creating a new file? */
     if((rdwr & RRD_CREAT) && (rrd->stat_head != NULL))
     {
     /* Are we creating a new file? */
     if((rdwr & RRD_CREAT) && (rrd->stat_head != NULL))
     {
-        header_len = \
-          sizeof(stat_head_t) + \
-          sizeof(ds_def_t) * rrd->stat_head->ds_cnt + \
-          sizeof(rra_def_t) * rrd->stat_head->rra_cnt + \
-          sizeof(time_t) + \
-          sizeof(live_head_t) + \
-          sizeof(pdp_prep_t) * rrd->stat_head->ds_cnt + \
-          sizeof(cdp_prep_t) * rrd->stat_head->ds_cnt * rrd->stat_head->rra_cnt + \
-          sizeof(rra_ptr_t) * rrd->stat_head->rra_cnt;
+        header_len = rrd_get_header_size(rrd);
 
         value_cnt = 0;
         for (ui = 0; ui < rrd->stat_head->rra_cnt; ui++)
 
         value_cnt = 0;
         for (ui = 0; ui < rrd->stat_head->rra_cnt; ui++)
@@ -480,7 +470,7 @@ void rrd_dontneed(
     size_t dontneed_start;
     size_t rra_start;
     size_t active_block;
     size_t dontneed_start;
     size_t rra_start;
     size_t active_block;
-    unsigned long i;
+    size_t i;
     ssize_t   _page_size = sysconf(_SC_PAGESIZE);
 
     if (rrd_file == NULL) {
     ssize_t   _page_size = sysconf(_SC_PAGESIZE);
 
     if (rrd_file == NULL) {
@@ -763,19 +753,5 @@ unsigned long rrd_select_initial_row(
     rra_def_t *rra
     )
 {
     rra_def_t *rra
     )
 {
-    return rra_random_row(rra);
+    return rrd_random() % rra->row_cnt;
 }
 }
-
-static int rand_init = 0;
-
-long int rra_random_row(
-    rra_def_t *rra)
-{
-    if (!rand_init) {
-        srandom((unsigned int) time(NULL) + (unsigned int) getpid());
-        rand_init++;
-    }
-
-    return random() % rra->row_cnt;
-}
-