| Index: src/trusted/desc/nacl_desc_io.c
|
| diff --git a/src/trusted/desc/nacl_desc_io.c b/src/trusted/desc/nacl_desc_io.c
|
| index 610232e4889a4258c3499671298d67e5c38c63fb..25b016ee9f7ac12c10896ef60f022a4834153258 100644
|
| --- a/src/trusted/desc/nacl_desc_io.c
|
| +++ b/src/trusted/desc/nacl_desc_io.c
|
| @@ -90,6 +90,25 @@ struct NaClDescIoDesc *NaClDescIoDescMake(struct NaClHostDesc *nhdp) {
|
| return ndp;
|
| }
|
|
|
| +struct NaClDesc *NaClDescIoDescMakeFromHandle(NaClHandle handle) {
|
| + int posix_d;
|
| + struct NaClHostDesc *nhdp;
|
| + struct NaClDescIoDesc *desc;
|
| +
|
| +#if NACL_WINDOWS
|
| + posix_d = _open_osfhandle((intptr_t) handle, _O_RDWR | _O_BINARY);
|
| + if (-1 == posix_d)
|
| + return NULL;
|
| +#else
|
| + posix_d = handle;
|
| +#endif
|
| + nhdp = NaClHostDescPosixMake(posix_d, NACL_ABI_O_RDWR);
|
| + if (NULL == nhdp)
|
| + return NULL;
|
| + desc = NaClDescIoDescMake(nhdp);
|
| + return &desc->base;
|
| +}
|
| +
|
| struct NaClDescIoDesc *NaClDescIoDescOpen(char *path,
|
| int mode,
|
| int perms) {
|
|
|