aboutsummaryrefslogtreecommitdiff
path: root/messages
diff options
context:
space:
mode:
authorDarren Krahn <dkrahn@google.com>2016-03-08 14:56:58 -0800
committerDarren Krahn <dkrahn@google.com>2016-03-10 13:02:55 -0800
commit088471151b7784cef5a8555e1f155454df106113 (patch)
tree7b445bfec0f9131bc304094c4c8bad94e283c7c8 /messages
parent811b136ab381658b7ec80aff885f80db495424d2 (diff)
downloadnvram-088471151b7784cef5a8555e1f155454df106113.tar.gz
Add support for get_max_space_size_in_bytes().
This method, added in v1.1 of the HAL, allows an implementation to report the maximum supported size for a single space. This CL also includes a few enhancements to improve testing and adds a top level Android.mk for convenience. BUG=27480753 Change-Id: I962cc7a31e869e72920cd80146b69974e50d5745
Diffstat (limited to 'messages')
-rw-r--r--messages/include/nvram/messages/nvram_messages.h1
-rw-r--r--messages/nvram_messages.cpp7
-rw-r--r--messages/tests/Android.mk1
-rw-r--r--messages/tests/nvram_messages_test.cpp2
4 files changed, 10 insertions, 1 deletions
diff --git a/messages/include/nvram/messages/nvram_messages.h b/messages/include/nvram/messages/nvram_messages.h
index 9dcba07..b352d9f 100644
--- a/messages/include/nvram/messages/nvram_messages.h
+++ b/messages/include/nvram/messages/nvram_messages.h
@@ -45,6 +45,7 @@ struct GetInfoRequest {};
struct GetInfoResponse {
uint64_t total_size = 0;
uint64_t available_size = 0;
+ uint64_t max_space_size = 0;
uint32_t max_spaces = 0;
Vector<uint32_t> space_list;
};
diff --git a/messages/nvram_messages.cpp b/messages/nvram_messages.cpp
index 6047bd1..a984876 100644
--- a/messages/nvram_messages.cpp
+++ b/messages/nvram_messages.cpp
@@ -23,6 +23,10 @@
namespace nvram {
// Descriptors for the message types.
+
+// IMPORTANT: The field numbers specified here correspond to protocol buffer
+// fields on the wire. While they are arbitrary, they should never be
+// reordered, reassigned, or overloaded once defined.
template<> struct DescriptorForType<GetInfoRequest> {
static constexpr auto kFields = MakeFieldList();
};
@@ -32,7 +36,8 @@ template<> struct DescriptorForType<GetInfoResponse> {
MakeFieldList(MakeField(1, &GetInfoResponse::total_size),
MakeField(2, &GetInfoResponse::available_size),
MakeField(3, &GetInfoResponse::max_spaces),
- MakeField(4, &GetInfoResponse::space_list));
+ MakeField(4, &GetInfoResponse::space_list),
+ MakeField(5, &GetInfoResponse::max_space_size));
};
template<> struct DescriptorForType<CreateSpaceRequest> {
diff --git a/messages/tests/Android.mk b/messages/tests/Android.mk
index 8cbd938..298b9d3 100644
--- a/messages/tests/Android.mk
+++ b/messages/tests/Android.mk
@@ -18,6 +18,7 @@ LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libnvram-messages-tests
+LOCAL_MODULE_TAGS := debug
LOCAL_SRC_FILES := \
io_test.cpp \
nvram_messages_test.cpp
diff --git a/messages/tests/nvram_messages_test.cpp b/messages/tests/nvram_messages_test.cpp
index 77be7e8..21cbfaa 100644
--- a/messages/tests/nvram_messages_test.cpp
+++ b/messages/tests/nvram_messages_test.cpp
@@ -54,6 +54,7 @@ TEST(NvramMessagesTest, GetInfoResponse) {
response.payload.Activate<COMMAND_GET_INFO>();
response_payload.total_size = 32768;
response_payload.available_size = 4096;
+ response_payload.max_space_size = 512;
response_payload.max_spaces = 32;
ASSERT_TRUE(response_payload.space_list.Append(0x1234));
ASSERT_TRUE(response_payload.space_list.Append(0xffffffff));
@@ -72,6 +73,7 @@ TEST(NvramMessagesTest, GetInfoResponse) {
EXPECT_EQ(32768ULL, decoded_payload->total_size);
EXPECT_EQ(4096ULL, decoded_payload->available_size);
+ EXPECT_EQ(512ULL, decoded_payload->max_space_size);
EXPECT_EQ(32U, decoded_payload->max_spaces);
ASSERT_EQ(5U, decoded_payload->space_list.size());
EXPECT_EQ(0x1234U, decoded_payload->space_list[0]);