| Index: native_client_sdk/src/libraries/nacl_io/kernel_object.h
|
| diff --git a/native_client_sdk/src/libraries/nacl_io/kernel_object.h b/native_client_sdk/src/libraries/nacl_io/kernel_object.h
|
| index 70ffb2f54a13e80900067f0b1845e8348be2f591..dcd29f3af13266b6db2d35e626065350c661e89f 100644
|
| --- a/native_client_sdk/src/libraries/nacl_io/kernel_object.h
|
| +++ b/native_client_sdk/src/libraries/nacl_io/kernel_object.h
|
| @@ -37,6 +37,7 @@ class KernelObject {
|
| int flags;
|
| };
|
| typedef std::vector<Descriptor_t> HandleMap_t;
|
| + typedef std::map<int, std::string> FdPathMap_t;
|
| typedef std::map<std::string, ScopedFilesystem> FsMap_t;
|
|
|
| KernelObject();
|
| @@ -65,6 +66,8 @@ class KernelObject {
|
|
|
| // Get FD-specific flags (currently only FD_CLOEXEC is supported).
|
| Error GetFDFlags(int fd, int* out_flags);
|
| + // Get path at which FD was opened, if available.
|
| + std::string GetFDPath(int fd);
|
| // Set FD-specific flags (currently only FD_CLOEXEC is supported).
|
| Error SetFDFlags(int fd, int flags);
|
|
|
| @@ -75,7 +78,7 @@ class KernelObject {
|
| // Allocate a new fd and assign the handle to it, while
|
| // ref counting the handle and associated filesystem.
|
| // Assumes |handle| is non-NULL;
|
| - int AllocateFD(const ScopedKernelHandle& handle);
|
| + int AllocateFD(const ScopedKernelHandle& handle, std::string path);
|
|
|
| // Assumes |handle| is non-NULL;
|
| void FreeAndReassignFD(int fd, const ScopedKernelHandle& handle);
|
| @@ -92,6 +95,7 @@ class KernelObject {
|
| std::string cwd_;
|
| std::vector<int> free_fds_;
|
| HandleMap_t handle_map_;
|
| + FdPathMap_t fd_paths_;
|
| FsMap_t filesystems_;
|
|
|
| // Lock to protect free_fds_ and handle_map_.
|
|
|