ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/IO-AIO/AIO.xs
(Generate patch)

Comparing IO-AIO/AIO.xs (file contents):
Revision 1.208 by root, Sat Jan 7 18:42:43 2012 UTC vs.
Revision 1.209 by root, Sun Apr 1 17:46:02 2012 UTC

638 PL_statcache = *(EIO_STRUCT_STAT *)(req->ptr2); 638 PL_statcache = *(EIO_STRUCT_STAT *)(req->ptr2);
639 639
640 PUSHs (sv_result); 640 PUSHs (sv_result);
641 break; 641 break;
642 642
643 case EIO_SEEK:
644 PUSHs (req->result ? sv_result : sv_2mortal (newSVval64 (req->offs)));
645 break;
646
643 case EIO_READ: 647 case EIO_READ:
644 { 648 {
645 SvCUR_set (req->sv2, req->stroffset + (req->result > 0 ? req->result : 0)); 649 SvCUR_set (req->sv2, req->stroffset + (req->result > 0 ? req->result : 0));
646 *SvEND (req->sv2) = 0; 650 *SvEND (req->sv2) = 0;
647 SvPOK_only (req->sv2); 651 SvPOK_only (req->sv2);
1002 const_iv (MAP_LOCKED) 1006 const_iv (MAP_LOCKED)
1003 const_iv (MAP_NORESERVE) 1007 const_iv (MAP_NORESERVE)
1004 const_iv (MAP_POPULATE) 1008 const_iv (MAP_POPULATE)
1005 const_iv (MAP_NONBLOCK) 1009 const_iv (MAP_NONBLOCK)
1006 1010
1011 const_eio (SEEK_SET)
1012 const_eio (SEEK_CUR)
1013 const_eio (SEEK_END)
1014
1007 const_eio (MCL_FUTURE) 1015 const_eio (MCL_FUTURE)
1008 const_eio (MCL_CURRENT) 1016 const_eio (MCL_CURRENT)
1009 1017
1010 const_eio (MS_ASYNC) 1018 const_eio (MS_ASYNC)
1011 const_eio (MS_INVALIDATE) 1019 const_eio (MS_INVALIDATE)
1133 1141
1134 req->type = ix; 1142 req->type = ix;
1135 req->sv1 = newSVsv (fh); 1143 req->sv1 = newSVsv (fh);
1136 req->int1 = fd; 1144 req->int1 = fd;
1137 1145
1138 REQ_SEND (req); 1146 REQ_SEND;
1139} 1147}
1140 1148
1141void 1149void
1142aio_sync_file_range (SV *fh, off_t offset, size_t nbytes, UV flags, SV *callback=&PL_sv_undef) 1150aio_sync_file_range (SV *fh, off_t offset, size_t nbytes, UV flags, SV *callback=&PL_sv_undef)
1143 PPCODE: 1151 PPCODE:
1150 req->int1 = fd; 1158 req->int1 = fd;
1151 req->offs = offset; 1159 req->offs = offset;
1152 req->size = nbytes; 1160 req->size = nbytes;
1153 req->int2 = flags; 1161 req->int2 = flags;
1154 1162
1155 REQ_SEND (req); 1163 REQ_SEND;
1156} 1164}
1157 1165
1158void 1166void
1159aio_fallocate (SV *fh, int mode, off_t offset, size_t len, SV *callback=&PL_sv_undef) 1167aio_fallocate (SV *fh, int mode, off_t offset, size_t len, SV *callback=&PL_sv_undef)
1160 PPCODE: 1168 PPCODE:
1167 req->int1 = fd; 1175 req->int1 = fd;
1168 req->int2 = mode; 1176 req->int2 = mode;
1169 req->offs = offset; 1177 req->offs = offset;
1170 req->size = len; 1178 req->size = len;
1171 1179
1172 REQ_SEND (req); 1180 REQ_SEND;
1173} 1181}
1174 1182
1175void 1183void
1176aio_close (SV *fh, SV *callback=&PL_sv_undef) 1184aio_close (SV *fh, SV *callback=&PL_sv_undef)
1177 PPCODE: 1185 PPCODE:
1201 req->type = EIO_DUP2; 1209 req->type = EIO_DUP2;
1202 req->int1 = close_fd; 1210 req->int1 = close_fd;
1203 req->sv2 = newSVsv (fh); 1211 req->sv2 = newSVsv (fh);
1204 req->int2 = fd; 1212 req->int2 = fd;
1205 1213
1206 REQ_SEND (req); 1214 REQ_SEND;
1215}
1216
1217void
1218aio_seek (SV *fh, SV *offset, int whence, SV *callback=&PL_sv_undef)
1219 PPCODE:
1220{
1221 STRLEN svlen;
1222 int fd = s_fileno_croak (fh, 0);
1223 dREQ;
1224
1225 req->type = EIO_SEEK;
1226 req->sv1 = newSVsv (fh);
1227 req->int1 = fd;
1228 req->offs = SvVAL64 (offset);
1229 req->int2 = whence;
1230
1231 REQ_SEND;
1207} 1232}
1208 1233
1209void 1234void
1210aio_read (SV *fh, SV *offset, SV *length, SV8 *data, IV dataoffset, SV *callback=&PL_sv_undef) 1235aio_read (SV *fh, SV *offset, SV *length, SV8 *data, IV dataoffset, SV *callback=&PL_sv_undef)
1211 ALIAS: 1236 ALIAS:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines