… | |
… | |
698 | } |
698 | } |
699 | |
699 | |
700 | /*****************************************************************************/ |
700 | /*****************************************************************************/ |
701 | |
701 | |
702 | #if !_POSIX_MAPPED_FILES |
702 | #if !_POSIX_MAPPED_FILES |
703 | # define mmap(addr,length,prot,flags,fd,offs) (errno = ENOSYS, -1) |
703 | # define mmap(addr,length,prot,flags,fd,offs) EIO_ENOSYS () |
704 | # define munmap(addr,length) (errno = ENOSYS, -1) |
704 | # define munmap(addr,length) EIO_ENOSYS () |
705 | #endif |
705 | #endif |
706 | |
706 | |
707 | #if !_POSIX_MEMORY_PROTECTION |
707 | #if !_POSIX_MEMORY_PROTECTION |
708 | # define mprotect(addr,len,prot) (errno = ENOSYS, -1) |
708 | # define mprotect(addr,len,prot) EIO_ENOSYS () |
709 | # define PROT_NONE 0 |
709 | # define PROT_NONE 0 |
710 | # define PROT_WRITE 0 |
710 | # define PROT_WRITE 0 |
711 | # define MAP_PRIVATE 0 |
711 | # define MAP_PRIVATE 0 |
712 | # define MAP_SHARED 0 |
712 | # define MAP_SHARED 0 |
713 | # define MAP_FIXED 0 |
713 | # define MAP_FIXED 0 |
… | |
… | |
956 | const_iv (FIEMAP_EXTENT_DATA_TAIL) |
956 | const_iv (FIEMAP_EXTENT_DATA_TAIL) |
957 | const_iv (FIEMAP_EXTENT_UNWRITTEN) |
957 | const_iv (FIEMAP_EXTENT_UNWRITTEN) |
958 | const_iv (FIEMAP_EXTENT_MERGED) |
958 | const_iv (FIEMAP_EXTENT_MERGED) |
959 | const_iv (FIEMAP_EXTENT_SHARED) |
959 | const_iv (FIEMAP_EXTENT_SHARED) |
960 | |
960 | |
|
|
961 | const_iv (SPLICE_F_MOVE) |
|
|
962 | const_iv (SPLICE_F_NONBLOCK) |
|
|
963 | const_iv (SPLICE_F_MORE) |
|
|
964 | const_iv (SPLICE_F_GIFT) |
|
|
965 | |
|
|
966 | const_iv (SEEK_DATA) |
|
|
967 | const_iv (SEEK_HOLE) |
|
|
968 | |
|
|
969 | /* libeio constants */ |
961 | const_eio (SEEK_SET) |
970 | const_eio (SEEK_SET) |
962 | const_eio (SEEK_CUR) |
971 | const_eio (SEEK_CUR) |
963 | const_eio (SEEK_END) |
972 | const_eio (SEEK_END) |
964 | |
973 | |
965 | const_eio (MCL_FUTURE) |
974 | const_eio (MCL_FUTURE) |
… | |
… | |
1766 | addr = (void *)(((intptr_t)addr) + offset); |
1775 | addr = (void *)(((intptr_t)addr) + offset); |
1767 | eio_page_align (&addr, &len); |
1776 | eio_page_align (&addr, &len); |
1768 | #if _POSIX_MEMLOCK_RANGE |
1777 | #if _POSIX_MEMLOCK_RANGE |
1769 | RETVAL = munlock (addr, len); |
1778 | RETVAL = munlock (addr, len); |
1770 | #else |
1779 | #else |
1771 | RETVAL = ((errno = ENOSYS), -1); |
1780 | RETVAL = EIO_ENOSYS (); |
1772 | #endif |
1781 | #endif |
1773 | } |
1782 | } |
1774 | OUTPUT: |
1783 | OUTPUT: |
1775 | RETVAL |
1784 | RETVAL |
1776 | |
1785 | |
… | |
… | |
1778 | munlockall () |
1787 | munlockall () |
1779 | CODE: |
1788 | CODE: |
1780 | #if _POSIX_MEMLOCK |
1789 | #if _POSIX_MEMLOCK |
1781 | munlockall (); |
1790 | munlockall (); |
1782 | #else |
1791 | #else |
1783 | RETVAL = -1; |
1792 | RETVAL = EIO_ENOSYS (); |
1784 | errno = ENOSYS; |
|
|
1785 | #endif |
1793 | #endif |
1786 | OUTPUT: |
1794 | OUTPUT: |
|
|
1795 | RETVAL |
|
|
1796 | |
|
|
1797 | int |
|
|
1798 | splice (aio_rfd rfh, SV *off_in, aio_wfd wfh, SV *off_out, size_t length, unsigned int flags) |
|
|
1799 | CODE: |
|
|
1800 | { |
|
|
1801 | #if HAVE_LINUX_SPLICE |
|
|
1802 | loff_t off_in_, off_out_; |
|
|
1803 | RETVAL = splice ( |
|
|
1804 | rfh, SvOK (off_in ) ? (off_in_ = SvVAL64 (off_in )), &off_in_ : 0, |
|
|
1805 | wfh, SvOK (off_out) ? (off_out_ = SvVAL64 (off_out)), &off_out_ : 0, |
|
|
1806 | length, flags |
|
|
1807 | ); |
|
|
1808 | #else |
|
|
1809 | RETVAL = EIO_ENOSYS (); |
|
|
1810 | #endif |
|
|
1811 | } |
|
|
1812 | OUTPUT: |
|
|
1813 | RETVAL |
|
|
1814 | |
|
|
1815 | int |
|
|
1816 | tee (aio_rfd rfh, aio_wfd wfh, size_t length, unsigned int flags) |
|
|
1817 | CODE: |
|
|
1818 | #if HAVE_LINUX_SPLICE |
|
|
1819 | RETVAL = tee (rfh, wfh, length, flags); |
|
|
1820 | #else |
|
|
1821 | RETVAL = EIO_ENOSYS (); |
|
|
1822 | #endif |
|
|
1823 | OUTPUT: |
1787 | RETVAL |
1824 | RETVAL |
1788 | |
1825 | |
1789 | void _on_next_submit (SV *cb) |
1826 | void _on_next_submit (SV *cb) |
1790 | CODE: |
1827 | CODE: |
1791 | SvREFCNT_dec (on_next_submit); |
1828 | SvREFCNT_dec (on_next_submit); |