This change moves `read_member` and `write_member` helper functions out of cse_fpt.c and cse_serger.c into cse_helpers.c to avoid duplication. BUG=b:189177186,b:189167923 Change-Id: I7b646b29c9058d892bb0fc9824ef1b4340d2510c Signed-off-by: Furquan Shaikh <furquan@google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/58201 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org>
		
			
				
	
	
		
			57 lines
		
	
	
		
			976 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			976 B
		
	
	
	
		
			C
		
	
	
	
	
	
| /* SPDX-License-Identifier: GPL-2.0-only */
 | |
| /* Helper functions for cse_serger and cse_fpt */
 | |
| 
 | |
| #include <commonlib/endian.h>
 | |
| 
 | |
| #include "cse_helpers.h"
 | |
| 
 | |
| void write_member(struct buffer *buff, void *src, size_t size)
 | |
| {
 | |
| 	void *dst = buffer_get(buff);
 | |
| 
 | |
| 	switch (size) {
 | |
| 	case 1:
 | |
| 		write_le8(dst, *(uint8_t *)src);
 | |
| 		break;
 | |
| 	case 2:
 | |
| 		write_le16(dst, *(uint16_t *)src);
 | |
| 		break;
 | |
| 	case 4:
 | |
| 		write_le32(dst, *(uint32_t *)src);
 | |
| 		break;
 | |
| 	case 8:
 | |
| 		write_le64(dst, *(uint64_t *)src);
 | |
| 		break;
 | |
| 	default:
 | |
| 		memcpy(dst, src, size);
 | |
| 		break;
 | |
| 	}
 | |
| 
 | |
| 	buffer_seek(buff, size);
 | |
| }
 | |
| 
 | |
| void read_member(struct buffer *buff, void *dst, size_t size)
 | |
| {
 | |
| 	const void *src = buffer_get(buff);
 | |
| 
 | |
| 	switch (size) {
 | |
| 	case 1:
 | |
| 		*(uint8_t *)dst = read_le8(src);
 | |
| 		break;
 | |
| 	case 2:
 | |
| 		*(uint16_t *)dst = read_le16(src);
 | |
| 		break;
 | |
| 	case 4:
 | |
| 		*(uint32_t *)dst = read_le32(src);
 | |
| 		break;
 | |
| 	case 8:
 | |
| 		*(uint64_t *)dst = read_le64(src);
 | |
| 		break;
 | |
| 	default:
 | |
| 		memcpy(dst, src, size);
 | |
| 		break;
 | |
| 	}
 | |
| 
 | |
| 	buffer_seek(buff, size);
 | |
| }
 |