+// SPDX-License-Identifier: GPL-2.0+
/*
* Copyright (c) 2012 The Chromium OS Authors.
- *
- * SPDX-License-Identifier: GPL-2.0+
*/
#include <common.h>
+#include <mapmem.h>
#include <trace.h>
#include <asm/io.h>
#include <asm/sections.h>
/* Work out how must of the buffer we used */
*needed = ptr - buff;
if (ptr > end)
- return -1;
+ return -ENOSPC;
+
return 0;
}
/* Work out how must of the buffer we used */
*needed = ptr - buff;
if (ptr > end)
- return -1;
+ return -ENOSPC;
+
return 0;
}
trace_enabled = 0;
hdr = map_sysmem(CONFIG_TRACE_EARLY_ADDR,
CONFIG_TRACE_EARLY_SIZE);
- end = (char *)&hdr->ftrace[hdr->ftrace_count];
+ end = (char *)&hdr->ftrace[min(hdr->ftrace_count,
+ hdr->ftrace_size)];
used = end - (char *)hdr;
printf("trace: copying %08lx bytes of early data from %x to %08lx\n",
used, CONFIG_TRACE_EARLY_ADDR,
memcpy(buff, hdr, used);
#else
puts("trace: already enabled\n");
- return -1;
+ return -EALREADY;
#endif
}
hdr = (struct trace_hdr *)buff;
if (needed > buff_size) {
printf("trace: buffer size %zd bytes: at least %zd needed\n",
buff_size, needed);
- return -1;
+ return -ENOSPC;
}
if (was_disabled)
hdr->depth_limit = 15;
trace_enabled = 1;
trace_inited = 1;
+
return 0;
}
if (needed > buff_size) {
printf("trace: buffer size is %zd bytes, at least %zd needed\n",
buff_size, needed);
- return -1;
+ return -ENOSPC;
}
memset(hdr, '\0', needed);
printf("trace: early enable at %08x\n", CONFIG_TRACE_EARLY_ADDR);
trace_enabled = 1;
+
return 0;
}
#endif