… | |
… | |
129 | SV *self; /* the perl counterpart of this request, if any */ |
129 | SV *self; /* the perl counterpart of this request, if any */ |
130 | struct aio_cb *grp, *grp_prev, *grp_next, *grp_first; |
130 | struct aio_cb *grp, *grp_prev, *grp_next, *grp_first; |
131 | } aio_cb; |
131 | } aio_cb; |
132 | |
132 | |
133 | enum { |
133 | enum { |
134 | FLAG_CANCELLED = 0x01, |
134 | FLAG_CANCELLED = 0x01, /* request was cancelled */ |
135 | FLAG_SV1_RO_OFF = 0x40, /* data was set readonly */ |
135 | FLAG_SV1_RO_OFF = 0x40, /* data was set readonly */ |
136 | FLAG_PTR2_FREE = 0x80, /* need free(ptr2) */ |
136 | FLAG_PTR2_FREE = 0x80, /* need to free(ptr2) */ |
137 | }; |
137 | }; |
138 | |
138 | |
139 | typedef aio_cb *aio_req; |
139 | typedef aio_cb *aio_req; |
140 | typedef aio_cb *aio_req_ornot; |
140 | typedef aio_cb *aio_req_ornot; |
141 | |
141 | |
… | |
… | |
1320 | { |
1320 | { |
1321 | dREQ; |
1321 | dREQ; |
1322 | |
1322 | |
1323 | req->type = REQ_OPEN; |
1323 | req->type = REQ_OPEN; |
1324 | req->sv1 = newSVsv (pathname); |
1324 | req->sv1 = newSVsv (pathname); |
1325 | req->ptr1 = SvPVbyte_nolen (pathname); |
1325 | req->ptr1 = SvPVbyte_nolen (req->sv1); |
1326 | req->int1 = flags; |
1326 | req->int1 = flags; |
1327 | req->mode = mode; |
1327 | req->mode = mode; |
1328 | |
1328 | |
1329 | REQ_SEND; |
1329 | REQ_SEND; |
1330 | } |
1330 | } |
… | |
… | |
1426 | data = newSV (NAME_MAX); |
1426 | data = newSV (NAME_MAX); |
1427 | SvPOK_on (data); |
1427 | SvPOK_on (data); |
1428 | |
1428 | |
1429 | req->type = REQ_READLINK; |
1429 | req->type = REQ_READLINK; |
1430 | req->fh = newSVsv (path); |
1430 | req->fh = newSVsv (path); |
1431 | req->ptr2 = SvPVbyte_nolen (path); |
1431 | req->ptr2 = SvPVbyte_nolen (req->fh); |
1432 | req->sv1 = data; |
1432 | req->sv1 = data; |
1433 | req->ptr1 = SvPVbyte_nolen (data); |
1433 | req->ptr1 = SvPVbyte_nolen (data); |
1434 | |
1434 | |
1435 | REQ_SEND; |
1435 | REQ_SEND; |
1436 | } |
1436 | } |
… | |
… | |
1500 | |
1500 | |
1501 | if (SvPOK (fh_or_path)) |
1501 | if (SvPOK (fh_or_path)) |
1502 | { |
1502 | { |
1503 | req->type = ix; |
1503 | req->type = ix; |
1504 | req->sv1 = newSVsv (fh_or_path); |
1504 | req->sv1 = newSVsv (fh_or_path); |
1505 | req->ptr1 = SvPVbyte_nolen (fh_or_path); |
1505 | req->ptr1 = SvPVbyte_nolen (req->sv1); |
1506 | } |
1506 | } |
1507 | else |
1507 | else |
1508 | { |
1508 | { |
1509 | req->type = REQ_FSTAT; |
1509 | req->type = REQ_FSTAT; |
1510 | req->fh = newSVsv (fh_or_path); |
1510 | req->fh = newSVsv (fh_or_path); |
… | |
… | |
1526 | { |
1526 | { |
1527 | dREQ; |
1527 | dREQ; |
1528 | |
1528 | |
1529 | req->type = ix; |
1529 | req->type = ix; |
1530 | req->sv1 = newSVsv (pathname); |
1530 | req->sv1 = newSVsv (pathname); |
1531 | req->ptr1 = SvPVbyte_nolen (pathname); |
1531 | req->ptr1 = SvPVbyte_nolen (req->sv1); |
1532 | |
1532 | |
1533 | REQ_SEND; |
1533 | REQ_SEND; |
1534 | } |
1534 | } |
1535 | |
1535 | |
1536 | void |
1536 | void |
… | |
… | |
1548 | |
1548 | |
1549 | req->type = ix; |
1549 | req->type = ix; |
1550 | req->fh = newSVsv (oldpath); |
1550 | req->fh = newSVsv (oldpath); |
1551 | req->ptr2 = SvPVbyte_nolen (req->fh); |
1551 | req->ptr2 = SvPVbyte_nolen (req->fh); |
1552 | req->sv1 = newSVsv (newpath); |
1552 | req->sv1 = newSVsv (newpath); |
1553 | req->ptr1 = SvPVbyte_nolen (newpath); |
1553 | req->ptr1 = SvPVbyte_nolen (req->sv1); |
1554 | |
1554 | |
1555 | REQ_SEND; |
1555 | REQ_SEND; |
1556 | } |
1556 | } |
1557 | |
1557 | |
1558 | void |
1558 | void |
… | |
… | |
1565 | { |
1565 | { |
1566 | dREQ; |
1566 | dREQ; |
1567 | |
1567 | |
1568 | req->type = REQ_MKNOD; |
1568 | req->type = REQ_MKNOD; |
1569 | req->sv1 = newSVsv (pathname); |
1569 | req->sv1 = newSVsv (pathname); |
1570 | req->ptr1 = SvPVbyte_nolen (pathname); |
1570 | req->ptr1 = SvPVbyte_nolen (req->sv1); |
1571 | req->mode = (mode_t)mode; |
1571 | req->mode = (mode_t)mode; |
1572 | req->offs = dev; |
1572 | req->offs = dev; |
1573 | |
1573 | |
1574 | REQ_SEND; |
1574 | REQ_SEND; |
1575 | } |
1575 | } |