feat(rmm): add support for multiple rec and cpu
Changes to support creating and
executing multiple rec on multiple cpus.
Added per REC shared buffer between Host and Rec.
Signed-off-by: Shruti Gupta <shruti.gupta@arm.com>
Change-Id: Ib6dbd814ee9f68df4a53f9cfdc8b7f9c905c35fe
diff --git a/realm/realm_debug.c b/realm/realm_debug.c
index e9eb61e..d7989ca 100644
--- a/realm/realm_debug.c
+++ b/realm/realm_debug.c
@@ -19,19 +19,17 @@
*/
void realm_printf(const char *fmt, ...)
{
- host_shared_data_t *guest_shared_data = realm_get_shared_structure();
+ host_shared_data_t *guest_shared_data = realm_get_my_shared_structure();
char *log_buffer = (char *)guest_shared_data->log_buffer;
va_list args;
va_start(args, fmt);
- spin_lock((spinlock_t *)&guest_shared_data->printf_lock);
if (strnlen((const char *)log_buffer, MAX_BUF_SIZE) == MAX_BUF_SIZE) {
(void)memset((char *)log_buffer, 0, MAX_BUF_SIZE);
}
(void)vsnprintf((char *)log_buffer +
strnlen((const char *)log_buffer, MAX_BUF_SIZE),
MAX_BUF_SIZE, fmt, args);
- spin_unlock((spinlock_t *)&guest_shared_data->printf_lock);
va_end(args);
}
@@ -46,18 +44,16 @@
/* This is used from printf() when crash dump is reached */
int console_putc(int c)
{
- host_shared_data_t *guest_shared_data = realm_get_shared_structure();
+ host_shared_data_t *guest_shared_data = realm_get_my_shared_structure();
char *log_buffer = (char *)guest_shared_data->log_buffer;
if ((c < 0) || (c > 127)) {
return -1;
}
- spin_lock((spinlock_t *)&guest_shared_data->printf_lock);
if (strnlen((const char *)log_buffer, MAX_BUF_SIZE) == MAX_BUF_SIZE) {
(void)memset((char *)log_buffer, 0, MAX_BUF_SIZE);
}
*((char *)log_buffer + strnlen((const char *)log_buffer, MAX_BUF_SIZE)) = c;
- spin_unlock((spinlock_t *)&guest_shared_data->printf_lock);
return c;
}