diff options
author | Mike Lockwood <lockwood@android.com> | 2011-04-21 17:05:55 -0700 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2011-04-22 07:11:20 -0700 |
commit | 7d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0 (patch) | |
tree | ca352d0fe548618385cef862a764ad33c4d0c1db /media/mtp/MtpDebug.cpp | |
parent | 88a90ab588f11d1ffaf08e178232359c6d8d03eb (diff) | |
download | frameworks_av-7d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0.zip frameworks_av-7d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0.tar.gz frameworks_av-7d77dcfadd7fb637ed2c3aef5bb3990dd0a67dc0.tar.bz2 |
MTP: Add extended operations to support in-place editing of files
MTP does not support partial writes of files (the entire file must be transferred at once).
This makes it impossible to implement a FUSE file system for MTP
with acceptable performance.
To fix this problem, this change adds extended MTP operations to allow
partial writes to files:
SendPartialObject - allows writing a subset of a file, or appending to the end of a file
TruncateObject - allows changing the size of a file
BeginEditObject - must be called before using SendPartialObject and TruncateObject
EndEditObject - commits changes to a file after it has been edited with SendPartialObject or TruncateObject
We also add GetPartialObject64, which is the same as GetPartialObject
but has a 64 bit offset rather than 32.
Change-Id: I4b110748b97ae05cdc8aab02ecdbbbeb263f7840
Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'media/mtp/MtpDebug.cpp')
-rw-r--r-- | media/mtp/MtpDebug.cpp | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/media/mtp/MtpDebug.cpp b/media/mtp/MtpDebug.cpp index 1668ecf..9f3037d 100644 --- a/media/mtp/MtpDebug.cpp +++ b/media/mtp/MtpDebug.cpp @@ -63,6 +63,12 @@ static const CodeEntry sOperationCodes[] = { { "MTP_OPERATION_GET_OBJECT_REFERENCES", 0x9810 }, { "MTP_OPERATION_SET_OBJECT_REFERENCES", 0x9811 }, { "MTP_OPERATION_SKIP", 0x9820 }, + // android extensions + { "MTP_OPERATION_GET_PARTIAL_OBJECT_64", 0x95C1 }, + { "MTP_OPERATION_SEND_PARTIAL_OBJECT", 0x95C2 }, + { "MTP_OPERATION_TRUNCATE_OBJECT", 0x95C3 }, + { "MTP_OPERATION_BEGIN_EDIT_OBJECT", 0x95C4 }, + { "MTP_OPERATION_END_EDIT_OBJECT", 0x95C5 }, { 0, 0 }, }; |