… | |
… | |
254 | sv_type [ent->type] = newSViv (ent->type); |
254 | sv_type [ent->type] = newSViv (ent->type); |
255 | SvREADONLY_on (sv_type [ent->type]); |
255 | SvREADONLY_on (sv_type [ent->type]); |
256 | } |
256 | } |
257 | |
257 | |
258 | av_store (avent, 0, namesv); |
258 | av_store (avent, 0, namesv); |
|
|
259 | av_store (avent, 1, SvREFCNT_inc (sv_type [ent->type])); |
259 | av_store (avent, 1, IVSIZE >= 8 ? newSVuv (ent->inode) : newSVnv (ent->inode)); |
260 | av_store (avent, 2, IVSIZE >= 8 ? newSVuv (ent->inode) : newSVnv (ent->inode)); |
260 | av_store (avent, 2, SvREFCNT_inc (sv_type [ent->type])); |
|
|
261 | |
261 | |
262 | av_store (av, i, newRV_noinc ((SV *)avent)); |
262 | av_store (av, i, newRV_noinc ((SV *)avent)); |
263 | } |
263 | } |
264 | else |
264 | else |
265 | av_store (av, i, namesv); |
265 | av_store (av, i, namesv); |
… | |
… | |
294 | GV *gv = (GV *)sv_newmortal (); |
294 | GV *gv = (GV *)sv_newmortal (); |
295 | int flags = req->int1 & (O_RDONLY | O_WRONLY | O_RDWR); |
295 | int flags = req->int1 & (O_RDONLY | O_WRONLY | O_RDWR); |
296 | char sym [64]; |
296 | char sym [64]; |
297 | int symlen; |
297 | int symlen; |
298 | |
298 | |
299 | symlen = snprintf (sym, sizeof (sym), "fd#%d", req->result); |
299 | symlen = snprintf (sym, sizeof (sym), "fd#%u", (unsigned int)req->result); |
300 | gv_init (gv, stash, sym, symlen, 0); |
300 | gv_init (gv, stash, sym, symlen, 0); |
301 | |
301 | |
302 | symlen = snprintf ( |
302 | symlen = snprintf ( |
303 | sym, |
303 | sym, |
304 | sizeof (sym), |
304 | sizeof (sym), |
305 | "%s&=%d", |
305 | "%s&=%u", |
306 | flags == O_RDONLY ? "<" : flags == O_WRONLY ? ">" : "+<", |
306 | flags == O_RDONLY ? "<" : flags == O_WRONLY ? ">" : "+<", |
307 | req->result |
307 | (unsigned int)req->result |
308 | ); |
308 | ); |
309 | |
309 | |
310 | if (do_open (gv, sym, symlen, 0, 0, 0, 0)) |
310 | if (do_open (gv, sym, symlen, 0, 0, 0, 0)) |
311 | fh = (SV *)gv; |
311 | fh = (SV *)gv; |
312 | } |
312 | } |
… | |
… | |
961 | req->sv1 = newSVsv (pathname); |
961 | req->sv1 = newSVsv (pathname); |
962 | req->ptr1 = SvPVbyte_nolen (req->sv1); |
962 | req->ptr1 = SvPVbyte_nolen (req->sv1); |
963 | req->int1 = flags | EIO_READDIR_DENTS | EIO_READDIR_CUSTOM1; |
963 | req->int1 = flags | EIO_READDIR_DENTS | EIO_READDIR_CUSTOM1; |
964 | |
964 | |
965 | if (flags & EIO_READDIR_DENTS) |
965 | if (flags & EIO_READDIR_DENTS) |
966 | flags |= EIO_READDIR_CUSTOM2; |
966 | req->int1 |= EIO_READDIR_CUSTOM2; |
967 | |
967 | |
968 | REQ_SEND; |
968 | REQ_SEND; |
969 | } |
969 | } |
970 | |
970 | |
971 | void |
971 | void |