diff options
-rw-r--r-- | eio.c | 28 | ||||
-rw-r--r-- | eio.h | 14 | ||||
-rw-r--r-- | eio.pod | 2 | ||||
-rw-r--r-- | xthread.h | 2 |
4 files changed, 28 insertions, 18 deletions
@@ -880,10 +880,10 @@ int eio_poll (void) # define pread eio__pread # define pwrite eio__pwrite -static ssize_t +static eio_ssize_t eio__pread (int fd, void *buf, size_t count, off_t offset) { - ssize_t res; + eio_ssize_t res; off_t ooffset; X_LOCK (preadwritelock); @@ -896,10 +896,10 @@ eio__pread (int fd, void *buf, size_t count, off_t offset) return res; } -static ssize_t +static eio_ssize_t eio__pwrite (int fd, void *buf, size_t count, off_t offset) { - ssize_t res; + eio_ssize_t res; off_t ooffset; X_LOCK (preadwritelock); @@ -998,7 +998,7 @@ eio__fallocate (int fd, int mode, off_t offset, size_t len) # undef readahead # define readahead(fd,offset,count) eio__readahead (fd, offset, count, self) -static ssize_t +static eio_ssize_t eio__readahead (int fd, off_t offset, size_t count, etp_worker *self) { size_t todo = count; @@ -1020,11 +1020,11 @@ eio__readahead (int fd, off_t offset, size_t count, etp_worker *self) #endif /* sendfile always needs emulation */ -static ssize_t +static eio_ssize_t eio__sendfile (int ofd, int ifd, off_t offset, size_t count, etp_worker *self) { - ssize_t written = 0; - ssize_t res; + eio_ssize_t written = 0; + eio_ssize_t res; if (!count) return 0; @@ -1143,7 +1143,7 @@ eio__sendfile (int ofd, int ifd, off_t offset, size_t count, etp_worker *self) while (count) { - ssize_t cnt; + eio_ssize_t cnt; cnt = pread (ifd, eio_buf, count > EIO_BUFSIZE ? EIO_BUFSIZE : count, offset); @@ -1361,7 +1361,7 @@ eio__realpath (eio_req *req, etp_worker *self) while (*rel) { - ssize_t len, linklen; + eio_ssize_t len, linklen; char *beg = rel; while (*rel && *rel != '/') @@ -2182,7 +2182,7 @@ eio_req *eio_fchmod (int fd, mode_t mode, int pri, eio_cb cb, void *data) REQ (EIO_FCHMOD); req->int1 = fd; req->int2 = (long)mode; SEND; } -eio_req *eio_fchown (int fd, uid_t uid, gid_t gid, int pri, eio_cb cb, void *data) +eio_req *eio_fchown (int fd, eio_uid_t uid, eio_gid_t gid, int pri, eio_cb cb, void *data) { REQ (EIO_FCHOWN); req->int1 = fd; req->int2 = (long)uid; req->int3 = (long)gid; SEND; } @@ -2212,7 +2212,7 @@ eio_req *eio_truncate (const char *path, off_t offset, int pri, eio_cb cb, void REQ (EIO_TRUNCATE); PATH; req->offs = offset; SEND; } -eio_req *eio_chown (const char *path, uid_t uid, gid_t gid, int pri, eio_cb cb, void *data) +eio_req *eio_chown (const char *path, eio_uid_t uid, eio_gid_t gid, int pri, eio_cb cb, void *data) { REQ (EIO_CHOWN); PATH; req->int2 = (long)uid; req->int3 = (long)gid; SEND; } @@ -2369,11 +2369,11 @@ eio_grp_add (eio_req *grp, eio_req *req) /*****************************************************************************/ /* misc garbage */ -ssize_t +eio_ssize_t eio_sendfile_sync (int ofd, int ifd, off_t offset, size_t count) { etp_worker wrk; - ssize_t ret; + eio_ssize_t ret; wrk.dbuf = 0; @@ -66,6 +66,16 @@ typedef int (*eio_cb)(eio_req *req); # endif #endif +#ifdef _WIN32 +typedef int eio_uid_t; +typedef int eio_gid_t; +typedef intptr_t eio_ssize_t; /* or SSIZE_T */ +#else +typedef uid_t eio_uid_t; +typedef gid_t eio_gid_t; +typedef ssize_t eio_ssize_t; +#endif + #ifndef EIO_STRUCT_STATVFS # define EIO_STRUCT_STATVFS struct statvfs #endif @@ -191,7 +201,7 @@ struct eio_req { eio_req volatile *next; /* private ETP */ - ssize_t result; /* result of syscall, e.g. result = read (... */ + eio_ssize_t result; /* result of syscall, e.g. result = read (... */ off_t offs; /* read, write, truncate, readahead, sync_file_range, fallocate: file offset, mknod: dev_t */ size_t size; /* read, write, readahead, sendfile, msync, mlock, sync_file_range, fallocate: length */ void *ptr1; /* all applicable requests: pathname, old name; readdir: optional eio_dirents */ @@ -341,7 +351,7 @@ void eio_cancel (eio_req *req); /*****************************************************************************/ /* convenience functions */ -ssize_t eio_sendfile_sync (int ofd, int ifd, off_t offset, size_t count); +eio_ssize_t eio_sendfile_sync (int ofd, int ifd, off_t offset, size_t count); #ifdef __cplusplus } @@ -911,7 +911,7 @@ was written to use very little stackspace, but when using C<EIO_CUSTOM> requests, you might want to increase this. If this symbol is undefined (the default) then libeio will use its default -stack size (C<sizeof (long) * 4096> currently). If it is defined, but +stack size (C<sizeof (void *) * 4096> currently). If it is defined, but C<0>, then the default operating system stack size will be used. In all other cases, the value must be an expression that evaluates to the desired stack size. @@ -130,7 +130,7 @@ typedef pthread_t xthread_t; #endif #ifndef X_STACKSIZE -# define X_STACKSIZE sizeof (long) * 4096 +# define X_STACKSIZE sizeof (void *) * 4096 #endif static int |