diff options
author | Darren Krahn <dkrahn@google.com> | 2016-03-08 14:56:58 -0800 |
---|---|---|
committer | Darren Krahn <dkrahn@google.com> | 2016-03-10 13:02:55 -0800 |
commit | 088471151b7784cef5a8555e1f155454df106113 (patch) | |
tree | 7b445bfec0f9131bc304094c4c8bad94e283c7c8 /messages | |
parent | 811b136ab381658b7ec80aff885f80db495424d2 (diff) | |
download | nvram-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.h | 1 | ||||
-rw-r--r-- | messages/nvram_messages.cpp | 7 | ||||
-rw-r--r-- | messages/tests/Android.mk | 1 | ||||
-rw-r--r-- | messages/tests/nvram_messages_test.cpp | 2 |
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]); |