… | |
… | |
545 | const_iv (FADV_RANDOM , POSIX_FADV_RANDOM) |
545 | const_iv (FADV_RANDOM , POSIX_FADV_RANDOM) |
546 | const_iv (FADV_NOREUSE , POSIX_FADV_NOREUSE) |
546 | const_iv (FADV_NOREUSE , POSIX_FADV_NOREUSE) |
547 | const_iv (FADV_WILLNEED , POSIX_FADV_WILLNEED) |
547 | const_iv (FADV_WILLNEED , POSIX_FADV_WILLNEED) |
548 | const_iv (FADV_DONTNEED , POSIX_FADV_DONTNEED) |
548 | const_iv (FADV_DONTNEED , POSIX_FADV_DONTNEED) |
549 | |
549 | |
|
|
550 | const_eio (MS_ASYNC) |
|
|
551 | const_eio (MS_INVALIDATE) |
|
|
552 | const_eio (MS_SYNC) |
|
|
553 | |
|
|
554 | const_eio (MT_MODIFY) |
|
|
555 | |
550 | const_eio (SYNC_FILE_RANGE_WAIT_BEFORE) |
556 | const_eio (SYNC_FILE_RANGE_WAIT_BEFORE) |
551 | const_eio (SYNC_FILE_RANGE_WRITE) |
557 | const_eio (SYNC_FILE_RANGE_WRITE) |
552 | const_eio (SYNC_FILE_RANGE_WAIT_AFTER) |
558 | const_eio (SYNC_FILE_RANGE_WAIT_AFTER) |
553 | |
559 | |
554 | const_eio (READDIR_DENTS) |
560 | const_eio (READDIR_DENTS) |
… | |
… | |
992 | req->ptr1 = SvPVbyte_nolen (req->sv1); |
998 | req->ptr1 = SvPVbyte_nolen (req->sv1); |
993 | req->int2 = (mode_t)mode; |
999 | req->int2 = (mode_t)mode; |
994 | req->offs = dev; |
1000 | req->offs = dev; |
995 | |
1001 | |
996 | REQ_SEND; |
1002 | REQ_SEND; |
|
|
1003 | } |
|
|
1004 | |
|
|
1005 | void |
|
|
1006 | aio_mtouch (SV8 *data, IV offset = 0, SV *length = &PL_sv_undef, int flags = 0, SV *callback=&PL_sv_undef) |
|
|
1007 | ALIAS: |
|
|
1008 | aio_mtouch = EIO_MTOUCH |
|
|
1009 | aio_msync = EIO_MSYNC |
|
|
1010 | PROTOTYPE: $$$$;$ |
|
|
1011 | PPCODE: |
|
|
1012 | { |
|
|
1013 | STRLEN svlen; |
|
|
1014 | UV len = SvUV (length); |
|
|
1015 | char *svptr = SvPVbyte (data, svlen); |
|
|
1016 | |
|
|
1017 | if (offset < 0) |
|
|
1018 | offset += svlen; |
|
|
1019 | |
|
|
1020 | if (offset < 0 || offset > svlen) |
|
|
1021 | croak ("offset outside of scalar"); |
|
|
1022 | |
|
|
1023 | if (!SvOK (length) || len + offset > svlen) |
|
|
1024 | len = svlen - offset; |
|
|
1025 | |
|
|
1026 | { |
|
|
1027 | dREQ; |
|
|
1028 | |
|
|
1029 | req->type = ix; |
|
|
1030 | req->size = len; |
|
|
1031 | req->sv2 = SvREFCNT_inc (data); |
|
|
1032 | req->ptr2 = (char *)svptr + offset; |
|
|
1033 | req->int1 = flags; |
|
|
1034 | |
|
|
1035 | REQ_SEND; |
|
|
1036 | } |
997 | } |
1037 | } |
998 | |
1038 | |
999 | void |
1039 | void |
1000 | aio_busy (double delay, SV *callback=&PL_sv_undef) |
1040 | aio_busy (double delay, SV *callback=&PL_sv_undef) |
1001 | PPCODE: |
1041 | PPCODE: |
… | |
… | |
1144 | |
1184 | |
1145 | ssize_t |
1185 | ssize_t |
1146 | sendfile (aio_wfd ofh, aio_rfd ifh, off_t offset, size_t count) |
1186 | sendfile (aio_wfd ofh, aio_rfd ifh, off_t offset, size_t count) |
1147 | PROTOTYPE: $$$$ |
1187 | PROTOTYPE: $$$$ |
1148 | CODE: |
1188 | CODE: |
1149 | eio_sendfile_sync (ofh, ifh, offset, count); |
1189 | RETVAL = eio_sendfile_sync (ofh, ifh, offset, count); |
|
|
1190 | OUTPUT: |
|
|
1191 | RETVAL |
1150 | |
1192 | |
1151 | void _on_next_submit (SV *cb) |
1193 | void _on_next_submit (SV *cb) |
1152 | CODE: |
1194 | CODE: |
1153 | SvREFCNT_dec (on_next_submit); |
1195 | SvREFCNT_dec (on_next_submit); |
1154 | on_next_submit = SvOK (cb) ? newSVsv (cb) : 0; |
1196 | on_next_submit = SvOK (cb) ? newSVsv (cb) : 0; |