… | |
… | |
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: |