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.89 by root, Tue Oct 31 00:11:52 2006 UTC vs.
Revision 1.92 by root, Wed Nov 8 01:59:59 2006 UTC

87 self->dbuf = aio_buf = malloc (AIO_BUFSIZE); \ 87 self->dbuf = aio_buf = malloc (AIO_BUFSIZE); \
88 UNLOCK (wrklock); \ 88 UNLOCK (wrklock); \
89 if (!aio_buf) \ 89 if (!aio_buf) \
90 return -1; 90 return -1;
91 91
92typedef SV SV8; /* byte-sv, used for argument-checking */
93
92enum { 94enum {
93 REQ_QUIT, 95 REQ_QUIT,
94 REQ_OPEN, REQ_CLOSE, 96 REQ_OPEN, REQ_CLOSE,
95 REQ_READ, REQ_WRITE, REQ_READAHEAD, 97 REQ_READ, REQ_WRITE, REQ_READAHEAD,
96 REQ_SENDFILE, 98 REQ_SENDFILE,
1309 OUTPUT: 1311 OUTPUT:
1310 RETVAL 1312 RETVAL
1311 1313
1312void 1314void
1313aio_open (pathname,flags,mode,callback=&PL_sv_undef) 1315aio_open (pathname,flags,mode,callback=&PL_sv_undef)
1314 SV * pathname 1316 SV8 * pathname
1315 int flags 1317 int flags
1316 int mode 1318 int mode
1317 SV * callback 1319 SV * callback
1318 PROTOTYPE: $$$;$ 1320 PROTOTYPE: $$$;$
1319 PPCODE: 1321 PPCODE:
1352void 1354void
1353aio_read (fh,offset,length,data,dataoffset,callback=&PL_sv_undef) 1355aio_read (fh,offset,length,data,dataoffset,callback=&PL_sv_undef)
1354 SV * fh 1356 SV * fh
1355 UV offset 1357 UV offset
1356 UV length 1358 UV length
1357 SV * data 1359 SV8 * data
1358 UV dataoffset 1360 UV dataoffset
1359 SV * callback 1361 SV * callback
1360 ALIAS: 1362 ALIAS:
1361 aio_read = REQ_READ 1363 aio_read = REQ_READ
1362 aio_write = REQ_WRITE 1364 aio_write = REQ_WRITE
1413 } 1415 }
1414} 1416}
1415 1417
1416void 1418void
1417aio_readlink (path,callback=&PL_sv_undef) 1419aio_readlink (path,callback=&PL_sv_undef)
1418 SV * path 1420 SV8 * path
1419 SV * callback 1421 SV * callback
1420 PROTOTYPE: $$;$ 1422 PROTOTYPE: $$;$
1421 PPCODE: 1423 PPCODE:
1422{ 1424{
1423 SV *data; 1425 SV *data;
1478 REQ_SEND; 1480 REQ_SEND;
1479} 1481}
1480 1482
1481void 1483void
1482aio_stat (fh_or_path,callback=&PL_sv_undef) 1484aio_stat (fh_or_path,callback=&PL_sv_undef)
1483 SV * fh_or_path 1485 SV8 * fh_or_path
1484 SV * callback 1486 SV * callback
1485 ALIAS: 1487 ALIAS:
1486 aio_stat = REQ_STAT 1488 aio_stat = REQ_STAT
1487 aio_lstat = REQ_LSTAT 1489 aio_lstat = REQ_LSTAT
1488 PPCODE: 1490 PPCODE:
1514 REQ_SEND; 1516 REQ_SEND;
1515} 1517}
1516 1518
1517void 1519void
1518aio_unlink (pathname,callback=&PL_sv_undef) 1520aio_unlink (pathname,callback=&PL_sv_undef)
1519 SV * pathname 1521 SV8 * pathname
1520 SV * callback 1522 SV * callback
1521 ALIAS: 1523 ALIAS:
1522 aio_unlink = REQ_UNLINK 1524 aio_unlink = REQ_UNLINK
1523 aio_rmdir = REQ_RMDIR 1525 aio_rmdir = REQ_RMDIR
1524 aio_readdir = REQ_READDIR 1526 aio_readdir = REQ_READDIR
1533 REQ_SEND; 1535 REQ_SEND;
1534} 1536}
1535 1537
1536void 1538void
1537aio_link (oldpath,newpath,callback=&PL_sv_undef) 1539aio_link (oldpath,newpath,callback=&PL_sv_undef)
1538 SV * oldpath 1540 SV8 * oldpath
1539 SV * newpath 1541 SV8 * newpath
1540 SV * callback 1542 SV * callback
1541 ALIAS: 1543 ALIAS:
1542 aio_link = REQ_LINK 1544 aio_link = REQ_LINK
1543 aio_symlink = REQ_SYMLINK 1545 aio_symlink = REQ_SYMLINK
1544 aio_rename = REQ_RENAME 1546 aio_rename = REQ_RENAME
1555 REQ_SEND; 1557 REQ_SEND;
1556} 1558}
1557 1559
1558void 1560void
1559aio_mknod (pathname,mode,dev,callback=&PL_sv_undef) 1561aio_mknod (pathname,mode,dev,callback=&PL_sv_undef)
1560 SV * pathname 1562 SV8 * pathname
1561 SV * callback 1563 SV * callback
1562 UV mode 1564 UV mode
1563 UV dev 1565 UV dev
1564 PPCODE: 1566 PPCODE:
1565{ 1567{
1642 PROTOTYPE: 1644 PROTOTYPE:
1643 CODE: 1645 CODE:
1644 while (nreqs) 1646 while (nreqs)
1645 { 1647 {
1646 poll_wait (); 1648 poll_wait ();
1647 poll_cb (0); 1649 poll_cb ();
1648 } 1650 }
1649 1651
1650void 1652int
1651poll() 1653poll()
1652 PROTOTYPE: 1654 PROTOTYPE:
1653 CODE: 1655 CODE:
1654 if (nreqs)
1655 {
1656 poll_wait (); 1656 poll_wait ();
1657 poll_cb (0); 1657 RETVAL = poll_cb ();
1658 } 1658 OUTPUT:
1659 RETVAL
1659 1660
1660int 1661int
1661poll_fileno() 1662poll_fileno()
1662 PROTOTYPE: 1663 PROTOTYPE:
1663 CODE: 1664 CODE:
1675 1676
1676void 1677void
1677poll_wait() 1678poll_wait()
1678 PROTOTYPE: 1679 PROTOTYPE:
1679 CODE: 1680 CODE:
1680 if (nreqs)
1681 poll_wait (); 1681 poll_wait ();
1682 1682
1683int 1683int
1684nreqs() 1684nreqs()
1685 PROTOTYPE: 1685 PROTOTYPE:
1686 CODE: 1686 CODE:

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines