ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/cvsroot/libeio/eio.c
(Generate patch)

Comparing cvsroot/libeio/eio.c (file contents):
Revision 1.63 by root, Thu May 26 03:51:55 2011 UTC vs.
Revision 1.66 by root, Sun Jun 5 19:58:37 2011 UTC

35 * and other provisions required by the GPL. If you do not delete the 35 * and other provisions required by the GPL. If you do not delete the
36 * provisions above, a recipient may use your version of this file under 36 * provisions above, a recipient may use your version of this file under
37 * either the BSD or the GPL. 37 * either the BSD or the GPL.
38 */ 38 */
39 39
40#ifndef _WIN32
41# include "config.h"
42#endif
43
40#include "eio.h" 44#include "eio.h"
41 45
42#ifdef EIO_STACKSIZE 46#ifdef EIO_STACKSIZE
43# define XTHREAD_STACKSIZE EIO_STACKSIZE 47# define XTHREAD_STACKSIZE EIO_STACKSIZE
44#endif 48#endif
54#include <sys/statvfs.h> 58#include <sys/statvfs.h>
55#include <limits.h> 59#include <limits.h>
56#include <fcntl.h> 60#include <fcntl.h>
57#include <assert.h> 61#include <assert.h>
58 62
63/* intptr_t comes from unistd.h, says POSIX/UNIX/tradition */
64/* intptr_t only comes form stdint.h, says idiot openbsd coder */
65#if HAVE_STDINT_H
66# include <stdint.h>
67#endif
68
59#ifndef EIO_FINISH 69#ifndef EIO_FINISH
60# define EIO_FINISH(req) ((req)->finish) && !EIO_CANCELLED (req) ? (req)->finish (req) : 0 70# define EIO_FINISH(req) ((req)->finish) && !EIO_CANCELLED (req) ? (req)->finish (req) : 0
61#endif 71#endif
62 72
63#ifndef EIO_DESTROY 73#ifndef EIO_DESTROY
71#ifdef _WIN32 81#ifdef _WIN32
72 82
73 /*doh*/ 83 /*doh*/
74#else 84#else
75 85
76# include "config.h"
77# include <sys/time.h> 86# include <sys/time.h>
78# include <sys/select.h> 87# include <sys/select.h>
79# include <unistd.h> 88# include <unistd.h>
80# include <utime.h> 89# include <utime.h>
81# include <signal.h> 90# include <signal.h>
1279 eio_dirent *oth = dents + dentoffs; 1288 eio_dirent *oth = dents + dentoffs;
1280 eio_dirent *dir = dents; 1289 eio_dirent *dir = dents;
1281 1290
1282 /* now partition dirs to the front, and non-dirs to the back */ 1291 /* now partition dirs to the front, and non-dirs to the back */
1283 /* by walking from both sides and swapping if necessary */ 1292 /* by walking from both sides and swapping if necessary */
1284 /* also clear score, so it doesn't influence sorting */
1285 while (oth > dir) 1293 while (oth > dir)
1286 { 1294 {
1287 if (dir->type == EIO_DT_DIR) 1295 if (dir->type == EIO_DT_DIR)
1288 ++dir; 1296 ++dir;
1289 else if ((--oth)->type == EIO_DT_DIR) 1297 else if ((--oth)->type == EIO_DT_DIR)
1292 1300
1293 ++dir; 1301 ++dir;
1294 } 1302 }
1295 } 1303 }
1296 1304
1297 /* now sort the dirs only */ 1305 /* now sort the dirs only (dirs all have the same score) */
1298 eio_dent_sort (dents, dir - dents, 0, inode_bits); 1306 eio_dent_sort (dents, dir - dents, 0, inode_bits);
1299 } 1307 }
1300 1308
1301 break; 1309 break;
1302 } 1310 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines