1 // Copyright 2013 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "nacl_io/filesystem.h" 6 7 #include <errno.h> 8 #include <fcntl.h> 9 #include <stdarg.h> 10 11 #include <string> 12 13 #include "nacl_io/dir_node.h" 14 #include "nacl_io/node.h" 15 #include "nacl_io/osstat.h" 16 #include "nacl_io/path.h" 17 #include "sdk_util/auto_lock.h" 18 #include "sdk_util/ref_object.h" 19 20 #if defined(WIN32) 21 #include <windows.h> 22 #endif 23 24 namespace nacl_io { 25 Filesystem()26Filesystem::Filesystem() : dev_(0) { 27 } 28 ~Filesystem()29Filesystem::~Filesystem() { 30 } 31 Init(const FsInitArgs & args)32Error Filesystem::Init(const FsInitArgs& args) { 33 dev_ = args.dev; 34 ppapi_ = args.ppapi; 35 return 0; 36 } 37 Destroy()38void Filesystem::Destroy() { 39 } 40 OpenResource(const Path & path,ScopedNode * out_node)41Error Filesystem::OpenResource(const Path& path, ScopedNode* out_node) { 42 out_node->reset(NULL); 43 return EINVAL; 44 } 45 OnNodeCreated(Node * node)46void Filesystem::OnNodeCreated(Node* node) { 47 node->stat_.st_ino = inode_pool_.Acquire(); 48 node->stat_.st_dev = dev_; 49 } 50 OnNodeDestroyed(Node * node)51void Filesystem::OnNodeDestroyed(Node* node) { 52 if (node->stat_.st_ino) 53 inode_pool_.Release(node->stat_.st_ino); 54 } 55 Filesystem_VIoctl(int request,va_list args)56Error Filesystem::Filesystem_VIoctl(int request, va_list args) { 57 return EINVAL; 58 } 59 Filesystem_Ioctl(int request,...)60Error Filesystem::Filesystem_Ioctl(int request, ...) { 61 va_list args; 62 va_start(args, request); 63 Error error = Filesystem_VIoctl(request, args); 64 va_end(args); 65 return error; 66 } 67 68 } // namespace nacl_io 69