refactor(ff-a): use bitfields for memory access bitmaps

Instead of doing the bit-manipulation manually, these types can be
declared as structs where the fields are given explicit bitwidths. The
compiler will generate the appropriate bit-manipulation automatically.

Change-Id: Ifb66ac6904b8c216ccc18f6f86bbf7c051178f6d
Signed-off-by: Karl Meakin <karl.meakin@arm.com>
diff --git a/src/api.c b/src/api.c
index c407238..9d56f54 100644
--- a/src/api.c
+++ b/src/api.c
@@ -3057,7 +3057,8 @@
 {
 	memory_region_v1_1->sender = memory_region_v1_0->sender;
 	memory_region_v1_1->handle = memory_region_v1_0->handle;
-	memory_region_v1_1->attributes = memory_region_v1_0->attributes;
+	memory_region_v1_1->attributes =
+		ffa_memory_attributes_extend(memory_region_v1_0->attributes);
 	memory_region_v1_1->flags = memory_region_v1_0->flags;
 	memory_region_v1_1->tag = memory_region_v1_0->tag;
 	memory_region_v1_1->memory_access_desc_size =