Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Unified Diff: native_client_sdk/src/libraries/nacl_io/mount_node.h

Issue 16232016: [NaCl SDK] nacl_io: big refactor to return error value (errno). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: native_client_sdk/src/libraries/nacl_io/mount_node.h
diff --git a/native_client_sdk/src/libraries/nacl_io/mount_node.h b/native_client_sdk/src/libraries/nacl_io/mount_node.h
index 36a937e5fbbb23fea914676a1b3f00d02a9926f7..c3e8bb5965c12d31c0ccb6a0c0ecc2e74be828fc 100644
--- a/native_client_sdk/src/libraries/nacl_io/mount_node.h
+++ b/native_client_sdk/src/libraries/nacl_io/mount_node.h
@@ -7,6 +7,7 @@
#include <string>
+#include "nacl_io/error.h"
#include "nacl_io/osstat.h"
#include "utils/ref_object.h"
@@ -21,27 +22,37 @@ class MountNode : public RefObject {
protected:
// Initialize with node specific flags, in this case stat permissions.
- virtual bool Init(int flags);
+ virtual Error Init(int flags);
virtual void Destroy();
public:
// Normal OS operations on a node (file), can be called by the kernel
// directly so it must lock and unlock appropriately. These functions
// must not be called by the mount.
- virtual int FSync();
- virtual int FTruncate(off_t length);
- virtual int GetDents(size_t offs, struct dirent* pdir, size_t count);
- virtual int GetStat(struct stat* stat);
- virtual int Ioctl(int request, char* arg);
- virtual int Read(size_t offs, void* buf, size_t count);
- virtual int Write(size_t offs, const void* buf, size_t count);
- virtual void* MMap(void* addr, size_t length, int prot, int flags,
- size_t offset);
+ virtual Error FSync();
+ virtual Error FTruncate(off_t length);
+ virtual Error GetDents(size_t offs,
+ struct dirent* pdir,
+ size_t count,
+ int* out_bytes);
+ virtual Error GetStat(struct stat* stat);
+ virtual Error Ioctl(int request, char* arg);
+ virtual Error Read(size_t offs, void* buf, size_t count, int* out_bytes);
+ virtual Error Write(size_t offs,
+ const void* buf,
+ size_t count,
+ int* out_bytes);
+ virtual Error MMap(void* addr,
+ size_t length,
+ int prot,
+ int flags,
+ size_t offset,
+ void** out_addr);
virtual int GetLinks();
virtual int GetMode();
virtual int GetType();
- virtual size_t GetSize();
+ virtual Error GetSize(size_t *out_size);
virtual bool IsaDir();
virtual bool IsaFile();
virtual bool IsaTTY();
@@ -51,18 +62,18 @@ class MountNode : public RefObject {
// must be held while these calls are made.
// Adds or removes a directory entry updating the link numbers and refcount
- virtual int AddChild(const std::string& name, MountNode *node);
- virtual int RemoveChild(const std::string& name);
+ virtual Error AddChild(const std::string& name, MountNode* node);
+ virtual Error RemoveChild(const std::string& name);
// Find a child and return it without updating the refcount
- virtual MountNode* FindChild(const std::string& name);
+ virtual Error FindChild(const std::string& name, MountNode** out_node);
virtual int ChildCount();
// Update the link count
virtual void Link();
virtual void Unlink();
-protected:
+ protected:
struct stat stat_;
Mount* mount_;

Powered by Google App Engine
This is Rietveld 408576698