summaryrefslogtreecommitdiffstats
path: root/chromeos
diff options
context:
space:
mode:
authorhashimoto <hashimoto@chromium.org>2016-03-08 21:28:31 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-09 05:30:02 +0000
commitefaa412a93b5af1a0a4703348c7061923d132e6d (patch)
tree60613c3e823348fa283f3c48c8929b97b17507ff /chromeos
parentf41a2211a775b1f607eabe0c8e934daa42c15be0 (diff)
downloadchromium_src-efaa412a93b5af1a0a4703348c7061923d132e6d.zip
chromium_src-efaa412a93b5af1a0a4703348c7061923d132e6d.tar.gz
chromium_src-efaa412a93b5af1a0a4703348c7061923d132e6d.tar.bz2
Support 64-bit binder on 32-bit device
It's possible to config 32-bit kernel to use 64-bit binder Use binder_uintptr_t and binder_size_t whenever appropriate. BUG=563282 Review URL: https://codereview.chromium.org/1771203003 Cr-Commit-Position: refs/heads/master@{#380074}
Diffstat (limited to 'chromeos')
-rw-r--r--chromeos/binder/command_broker.cc2
-rw-r--r--chromeos/binder/command_stream.cc3
-rw-r--r--chromeos/binder/transaction_data.h3
-rw-r--r--chromeos/binder/transaction_data_from_driver.cc8
-rw-r--r--chromeos/binder/transaction_data_from_driver.h2
-rw-r--r--chromeos/binder/transaction_status.cc2
-rw-r--r--chromeos/binder/transaction_status.h2
-rw-r--r--chromeos/binder/writable_transaction_data.cc2
-rw-r--r--chromeos/binder/writable_transaction_data.h4
9 files changed, 15 insertions, 13 deletions
diff --git a/chromeos/binder/command_broker.cc b/chromeos/binder/command_broker.cc
index f4a74f1..3fefc47 100644
--- a/chromeos/binder/command_broker.cc
+++ b/chromeos/binder/command_broker.cc
@@ -33,7 +33,7 @@ binder_transaction_data ConvertTransactionDataToStruct(
}
result.data_size = data.GetDataSize();
result.data.ptr.buffer = reinterpret_cast<binder_uintptr_t>(data.GetData());
- result.offsets_size = data.GetNumObjectOffsets() * sizeof(size_t);
+ result.offsets_size = data.GetNumObjectOffsets() * sizeof(binder_size_t);
result.data.ptr.offsets =
reinterpret_cast<binder_uintptr_t>(data.GetObjectOffsets());
return result;
diff --git a/chromeos/binder/command_stream.cc b/chromeos/binder/command_stream.cc
index 6419afb..a60207a 100644
--- a/chromeos/binder/command_stream.cc
+++ b/chromeos/binder/command_stream.cc
@@ -213,7 +213,8 @@ bool CommandStream::OnIncomingCommand(uint32_t command, BufferReader* reader) {
void CommandStream::FreeTransactionBuffer(const void* ptr) {
DCHECK(thread_checker_.CalledOnValidThread());
- AppendOutgoingCommand(BC_FREE_BUFFER, &ptr, sizeof(ptr));
+ binder_uintptr_t p = reinterpret_cast<binder_uintptr_t>(ptr);
+ AppendOutgoingCommand(BC_FREE_BUFFER, &p, sizeof(p));
}
} // namespace binder
diff --git a/chromeos/binder/transaction_data.h b/chromeos/binder/transaction_data.h
index 900ca08..c6dc7ec 100644
--- a/chromeos/binder/transaction_data.h
+++ b/chromeos/binder/transaction_data.h
@@ -7,6 +7,7 @@
#include <sys/types.h>
+#include "chromeos/binder/binder_driver_api.h"
#include "chromeos/binder/status.h"
namespace binder {
@@ -45,7 +46,7 @@ class TransactionData {
virtual size_t GetDataSize() const = 0;
// Returns the offsets of objects stored in the payload.
- virtual const uintptr_t* GetObjectOffsets() const = 0;
+ virtual const binder_uintptr_t* GetObjectOffsets() const = 0;
// Returns the number of objects.
virtual size_t GetNumObjectOffsets() const = 0;
diff --git a/chromeos/binder/transaction_data_from_driver.cc b/chromeos/binder/transaction_data_from_driver.cc
index b14c324..91f4769 100644
--- a/chromeos/binder/transaction_data_from_driver.cc
+++ b/chromeos/binder/transaction_data_from_driver.cc
@@ -80,13 +80,13 @@ size_t TransactionDataFromDriver::GetDataSize() const {
return data_.data_size;
}
-const uintptr_t* TransactionDataFromDriver::GetObjectOffsets() const {
- return reinterpret_cast<const uintptr_t*>(data_.data.ptr.offsets);
+const binder_uintptr_t* TransactionDataFromDriver::GetObjectOffsets() const {
+ return reinterpret_cast<const binder_uintptr_t*>(data_.data.ptr.offsets);
}
size_t TransactionDataFromDriver::GetNumObjectOffsets() const {
- DCHECK_EQ(0u, data_.offsets_size % sizeof(size_t));
- return data_.offsets_size / sizeof(size_t);
+ DCHECK_EQ(0u, data_.offsets_size % sizeof(binder_size_t));
+ return data_.offsets_size / sizeof(binder_size_t);
}
} // namespace binder
diff --git a/chromeos/binder/transaction_data_from_driver.h b/chromeos/binder/transaction_data_from_driver.h
index 0ddf43f..23552d8 100644
--- a/chromeos/binder/transaction_data_from_driver.h
+++ b/chromeos/binder/transaction_data_from_driver.h
@@ -42,7 +42,7 @@ class CHROMEOS_EXPORT TransactionDataFromDriver : public TransactionData {
Status GetStatus() const override;
const void* GetData() const override;
size_t GetDataSize() const override;
- const uintptr_t* GetObjectOffsets() const override;
+ const binder_uintptr_t* GetObjectOffsets() const override;
size_t GetNumObjectOffsets() const override;
private:
diff --git a/chromeos/binder/transaction_status.cc b/chromeos/binder/transaction_status.cc
index 20f997c..4ac6a39 100644
--- a/chromeos/binder/transaction_status.cc
+++ b/chromeos/binder/transaction_status.cc
@@ -46,7 +46,7 @@ size_t TransactionStatus::GetDataSize() const {
return sizeof(status_);
}
-const uintptr_t* TransactionStatus::GetObjectOffsets() const {
+const binder_uintptr_t* TransactionStatus::GetObjectOffsets() const {
return nullptr;
}
diff --git a/chromeos/binder/transaction_status.h b/chromeos/binder/transaction_status.h
index 088d173..27cafa3 100644
--- a/chromeos/binder/transaction_status.h
+++ b/chromeos/binder/transaction_status.h
@@ -33,7 +33,7 @@ class CHROMEOS_EXPORT TransactionStatus : public TransactionData {
Status GetStatus() const override;
const void* GetData() const override;
size_t GetDataSize() const override;
- const uintptr_t* GetObjectOffsets() const override;
+ const binder_uintptr_t* GetObjectOffsets() const override;
size_t GetNumObjectOffsets() const override;
private:
diff --git a/chromeos/binder/writable_transaction_data.cc b/chromeos/binder/writable_transaction_data.cc
index 5e56268..28f672d 100644
--- a/chromeos/binder/writable_transaction_data.cc
+++ b/chromeos/binder/writable_transaction_data.cc
@@ -52,7 +52,7 @@ size_t WritableTransactionData::GetDataSize() const {
return data_.size();
}
-const uintptr_t* WritableTransactionData::GetObjectOffsets() const {
+const binder_uintptr_t* WritableTransactionData::GetObjectOffsets() const {
return object_offsets_.data();
}
diff --git a/chromeos/binder/writable_transaction_data.h b/chromeos/binder/writable_transaction_data.h
index 1594901..fbad83c 100644
--- a/chromeos/binder/writable_transaction_data.h
+++ b/chromeos/binder/writable_transaction_data.h
@@ -46,7 +46,7 @@ class CHROMEOS_EXPORT WritableTransactionData : public TransactionData {
Status GetStatus() const override;
const void* GetData() const override;
size_t GetDataSize() const override;
- const uintptr_t* GetObjectOffsets() const override;
+ const binder_uintptr_t* GetObjectOffsets() const override;
size_t GetNumObjectOffsets() const override;
// Expands the capacity of the internal buffer.
@@ -106,7 +106,7 @@ class CHROMEOS_EXPORT WritableTransactionData : public TransactionData {
uint32_t code_ = 0;
bool is_one_way_ = false;
std::vector<char> data_;
- std::vector<uintptr_t> object_offsets_;
+ std::vector<binder_uintptr_t> object_offsets_;
std::vector<scoped_refptr<Object>> objects_;
std::vector<base::ScopedFD> files_;