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.80 by root, Fri Oct 27 19:17:23 2006 UTC vs.
Revision 1.82 by root, Fri Oct 27 20:11:58 2006 UTC

92 REQ_READ, REQ_WRITE, REQ_READAHEAD, 92 REQ_READ, REQ_WRITE, REQ_READAHEAD,
93 REQ_SENDFILE, 93 REQ_SENDFILE,
94 REQ_STAT, REQ_LSTAT, REQ_FSTAT, 94 REQ_STAT, REQ_LSTAT, REQ_FSTAT,
95 REQ_FSYNC, REQ_FDATASYNC, 95 REQ_FSYNC, REQ_FDATASYNC,
96 REQ_UNLINK, REQ_RMDIR, REQ_RENAME, 96 REQ_UNLINK, REQ_RMDIR, REQ_RENAME,
97 REQ_READDIR, 97 REQ_MKNOD, REQ_READDIR,
98 REQ_LINK, REQ_SYMLINK, 98 REQ_LINK, REQ_SYMLINK,
99 REQ_GROUP, REQ_NOP, 99 REQ_GROUP, REQ_NOP,
100 REQ_BUSY, 100 REQ_BUSY,
101}; 101};
102 102
1043 case REQ_UNLINK: req->result = unlink (req->dataptr); break; 1043 case REQ_UNLINK: req->result = unlink (req->dataptr); break;
1044 case REQ_RMDIR: req->result = rmdir (req->dataptr); break; 1044 case REQ_RMDIR: req->result = rmdir (req->dataptr); break;
1045 case REQ_RENAME: req->result = rename (req->data2ptr, req->dataptr); break; 1045 case REQ_RENAME: req->result = rename (req->data2ptr, req->dataptr); break;
1046 case REQ_LINK: req->result = link (req->data2ptr, req->dataptr); break; 1046 case REQ_LINK: req->result = link (req->data2ptr, req->dataptr); break;
1047 case REQ_SYMLINK: req->result = symlink (req->data2ptr, req->dataptr); break; 1047 case REQ_SYMLINK: req->result = symlink (req->data2ptr, req->dataptr); break;
1048 case REQ_MKNOD: req->result = mknod (req->data2ptr, req->mode, (dev_t)req->offset); break;
1048 1049
1049 case REQ_FDATASYNC: req->result = fdatasync (req->fd); break; 1050 case REQ_FDATASYNC: req->result = fdatasync (req->fd); break;
1050 case REQ_FSYNC: req->result = fsync (req->fd); break; 1051 case REQ_FSYNC: req->result = fsync (req->fd); break;
1051 case REQ_READDIR: scandir_ (req, self); break; 1052 case REQ_READDIR: scandir_ (req, self); break;
1052 1053
1178PROTOTYPES: ENABLE 1179PROTOTYPES: ENABLE
1179 1180
1180BOOT: 1181BOOT:
1181{ 1182{
1182 HV *stash = gv_stashpv ("IO::AIO", 1); 1183 HV *stash = gv_stashpv ("IO::AIO", 1);
1184
1183 newCONSTSUB (stash, "EXDEV", newSViv (EXDEV)); 1185 newCONSTSUB (stash, "EXDEV", newSViv (EXDEV));
1184 newCONSTSUB (stash, "O_RDONLY", newSViv (O_RDONLY)); 1186 newCONSTSUB (stash, "O_RDONLY", newSViv (O_RDONLY));
1185 newCONSTSUB (stash, "O_WRONLY", newSViv (O_WRONLY)); 1187 newCONSTSUB (stash, "O_WRONLY", newSViv (O_WRONLY));
1188 newCONSTSUB (stash, "O_CREAT", newSViv (O_CREAT));
1189 newCONSTSUB (stash, "O_TRUNC", newSViv (O_TRUNC));
1190 newCONSTSUB (stash, "S_IFIFO", newSViv (S_IFIFO));
1186 1191
1187 create_pipe (); 1192 create_pipe ();
1188 pthread_atfork (atfork_prepare, atfork_parent, atfork_child); 1193 pthread_atfork (atfork_prepare, atfork_parent, atfork_child);
1189 1194
1190 start_thread (); 1195 start_thread ();
1423 req->type = ix; 1428 req->type = ix;
1424 req->fh = newSVsv (oldpath); 1429 req->fh = newSVsv (oldpath);
1425 req->data2ptr = SvPVbyte_nolen (req->fh); 1430 req->data2ptr = SvPVbyte_nolen (req->fh);
1426 req->data = newSVsv (newpath); 1431 req->data = newSVsv (newpath);
1427 req->dataptr = SvPVbyte_nolen (req->data); 1432 req->dataptr = SvPVbyte_nolen (req->data);
1433
1434 REQ_SEND;
1435}
1436
1437void
1438aio_mknod (pathname,mode,dev,callback=&PL_sv_undef)
1439 SV * pathname
1440 SV * callback
1441 UV mode
1442 UV dev
1443 PPCODE:
1444{
1445 dREQ;
1446
1447 req->type = REQ_MKNOD;
1448 req->data = newSVsv (pathname);
1449 req->dataptr = SvPVbyte_nolen (req->data);
1450 req->mode = (mode_t)mode;
1451 req->offset = dev;
1428 1452
1429 REQ_SEND; 1453 REQ_SEND;
1430} 1454}
1431 1455
1432void 1456void

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines