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 26 Filesystem::Filesystem() : dev_(0) { 27 } 28 29 Filesystem::~Filesystem() { 30 } 31 32 Error Filesystem::Init(const FsInitArgs& args) { 33 dev_ = args.dev; 34 ppapi_ = args.ppapi; 35 return 0; 36 } 37 38 void Filesystem::Destroy() { 39 } 40 41 Error Filesystem::OpenResource(const Path& path, ScopedNode* out_node) { 42 out_node->reset(NULL); 43 return EINVAL; 44 } 45 46 void Filesystem::OnNodeCreated(Node* node) { 47 node->stat_.st_ino = inode_pool_.Acquire(); 48 node->stat_.st_dev = dev_; 49 } 50 51 void Filesystem::OnNodeDestroyed(Node* node) { 52 if (node->stat_.st_ino) 53 inode_pool_.Release(node->stat_.st_ino); 54 } 55 56 Error Filesystem::Filesystem_VIoctl(int request, va_list args) { 57 return EINVAL; 58 } 59 60 Error 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