Merge pull request #66 in SEL4/sel4_libs from ~MFERNANDEZ/sel4_libs:aeeb7e68-c2e2-43c6-8d72-bd94b55363c7 to master
* commit 'a7e6e0557ff787c458ed6e941ec925040bd7dbad':
libsel4utils: Mark some strings as const.
libsel4test: Mark some char * parameters as const.
libsel4allocman: Fix missing initialised field.
diff --git a/libsel4allocman/src/cspace/two_level.c b/libsel4allocman/src/cspace/two_level.c
index 0cb6d65..4667680 100644
--- a/libsel4allocman/src/cspace/two_level.c
+++ b/libsel4allocman/src/cspace/two_level.c
@@ -28,7 +28,7 @@
could be a two level cspace and this would still work */
if(!cspace->second_levels[l1slot]) {
assert(!"ERROR: Tried make a path to a non existant slot\n");
- return (cspacepath_t) {0, 0, 0, 0, 0, 0};
+ return (cspacepath_t) {0, 0, 0, 0, 0, 0, 0};
}
l1_path = _cspace_single_level_make_path(&cspace->first_level, l1slot);
l2_path =_cspace_single_level_make_path(&cspace->second_levels[l1slot]->second_level, l2slot);
diff --git a/libsel4test/include/sel4test/prototype.h b/libsel4test/include/sel4test/prototype.h
index 06a7726..a3438bc 100644
--- a/libsel4test/include/sel4test/prototype.h
+++ b/libsel4test/include/sel4test/prototype.h
@@ -23,7 +23,7 @@
*
* @name name of test suite
*/
-void sel4test_start_suite(char *name);
+void sel4test_start_suite(const char *name);
/**
@@ -44,14 +44,14 @@
* Can report multiple errors.
* This will fail a test case.
*/
-void _sel4test_report_error(char *error, char *file, int line);
+void _sel4test_report_error(const char *error, const char *file, int line);
/*
* Mark the current test as failed. Should
* only be called once per test case
*/
-void _sel4test_failure(char *failure, char *file, int line);
+void _sel4test_failure(const char *failure, const char *file, int line);
/*
* End the current test case
diff --git a/libsel4test/include/sel4test/test.h b/libsel4test/include/sel4test/test.h
index a7a9125..f1644f1 100644
--- a/libsel4test/include/sel4test/test.h
+++ b/libsel4test/include/sel4test/test.h
@@ -76,7 +76,7 @@
}
/* Fails a test case, stop running the rest of the test, but keep running other tests. */
-static inline int _test_fail(char *condition, char *file, int line)
+static inline int _test_fail(const char *condition, const char *file, int line)
{
_sel4test_failure(condition, file, line);
#ifdef CONFIG_TESTPRINTER_HALT_ON_TEST_FAILURE
@@ -92,7 +92,7 @@
}
/* Fails a test case, keep running the rest of the test, then keep running other tests. */
-static inline void _test_error(char *condition, char *file, int line)
+static inline void _test_error(const char *condition, const char *file, int line)
{
_sel4test_report_error(condition, file, line);
@@ -109,7 +109,7 @@
}
/* Fails a test case, stop everything. */
-static inline void _test_abort(char *condition, char *file, int line)
+static inline void _test_abort(const char *condition, const char *file, int line)
{
_sel4test_failure(condition, file, line);
printf("Halting on fatal assertion...\n");
@@ -224,7 +224,7 @@
* @param run_test function that runs the tests.
*
*/
-void sel4test_run_tests(char *name, int (*run_test)(struct testcase *t));
+void sel4test_run_tests(const char *name, int (*run_test)(struct testcase *t));
/*
* Get a testcase.
@@ -232,7 +232,7 @@
* @param name the name of the test to retrieve.
* @return the test corresponding to name, NULL if test not found.
*/
-testcase_t* sel4test_get_test(char *name);
+testcase_t* sel4test_get_test(const char *name);
bool sel4test_get_result(void);
diff --git a/libsel4test/src/test.c b/libsel4test/src/test.c
index 0f1b1ab..d5b3c5a 100644
--- a/libsel4test/src/test.c
+++ b/libsel4test/src/test.c
@@ -54,7 +54,7 @@
void
-sel4test_start_suite(char *name) {
+sel4test_start_suite(const char *name) {
#ifdef CONFIG_PRINT_XML
buf_index = 0;
@@ -101,7 +101,7 @@
}
void
-_sel4test_report_error(char *error, char *file, int line) {
+_sel4test_report_error(const char *error, const char *file, int line) {
#ifdef CONFIG_PRINT_XML
printf("\t\t<error>%s at line %d of file %s</error>\n", error, line, file);
#else
@@ -112,7 +112,7 @@
void
-_sel4test_failure(char *failure, char *file, int line) {
+_sel4test_failure(const char *failure, const char *file, int line) {
#ifdef CONFIG_PRINT_XML
printf("\t\t<failure type=\"failure\">%s at line %d of file %s</failure>\n", failure, line, file);
#else
@@ -160,7 +160,7 @@
static USED SECTION("_test_case") struct {} dummy;
testcase_t*
-sel4test_get_test(char *name)
+sel4test_get_test(const char *name)
{
for (testcase_t *t = __start__test_case; t < __stop__test_case; t++) {
@@ -174,7 +174,7 @@
void
-sel4test_run_tests(char *name, int (*run_test)(struct testcase *t)) {
+sel4test_run_tests(const char *name, int (*run_test)(struct testcase *t)) {
/* Count how many tests actually exist and allocate space for them */
int max_tests = (int)(__stop__test_case - __start__test_case);
diff --git a/libsel4utils/include/sel4utils/elf.h b/libsel4utils/include/sel4utils/elf.h
index ab07af7..cd84b94 100644
--- a/libsel4utils/include/sel4utils/elf.h
+++ b/libsel4utils/include/sel4utils/elf.h
@@ -53,7 +53,7 @@
*/
void *
sel4utils_elf_load_record_regions(vspace_t *loadee, vspace_t *loader, vka_t *loadee_vka,
- vka_t *loader_vka, char *image_name, sel4utils_elf_region_t *regions, int mapanywhere);
+ vka_t *loader_vka, const char *image_name, sel4utils_elf_region_t *regions, int mapanywhere);
/**
* Wrapper for sel4utils_elf_load_record_regions. Does not record/perform reservations and
@@ -69,7 +69,7 @@
*/
void *
sel4utils_elf_load(vspace_t *loadee, vspace_t *loader, vka_t *loadee_vka,
- vka_t *loader_vka, char *image_name);
+ vka_t *loader_vka, const char *image_name);
/**
* Parses an elf file but does not actually load it. Merely reserves the regions in the vspace
@@ -83,7 +83,7 @@
* @return The entry point of the elf, NULL on error
*/
void *
-sel4utils_elf_reserve(vspace_t *loadee, char *image_name, sel4utils_elf_region_t *regions);
+sel4utils_elf_reserve(vspace_t *loadee, const char *image_name, sel4utils_elf_region_t *regions);
/**
* Parses an elf file and returns the number of loadable regions. The result of this
@@ -94,7 +94,7 @@
* @return Number of loadable regions in the elf
*/
int
-sel4utils_elf_num_regions(char *image_name);
+sel4utils_elf_num_regions(const char *image_name);
/**
* Looks for the __vsyscall section in an elf file and returns the value. This
@@ -104,7 +104,7 @@
*
* @return Address of vsyscall function or 0 if not found
*/
-uintptr_t sel4utils_elf_get_vsyscall(char *image_name);
+uintptr_t sel4utils_elf_get_vsyscall(const char *image_name);
#endif /* (defined CONFIG_LIB_SEL4_VKA && defined CONFIG_LIB_SEL4_VSPACE) */
#endif /* SEL4UTILS_ELF_H */
diff --git a/libsel4utils/include/sel4utils/process.h b/libsel4utils/include/sel4utils/process.h
index ddbe650..03ab1b8 100644
--- a/libsel4utils/include/sel4utils/process.h
+++ b/libsel4utils/include/sel4utils/process.h
@@ -84,7 +84,7 @@
/* should we handle elf logic at all? */
bool is_elf;
/* if so what is the image name? */
- char *image_name;
+ const char *image_name;
/* Do you want the elf image preloaded? */
bool do_elf_load;
@@ -201,7 +201,7 @@
* @return 0 on success, -1 on error.
*/
int sel4utils_configure_process(sel4utils_process_t *process, vka_t *vka, vspace_t *vspace,
- uint8_t priority, char *image_name);
+ uint8_t priority, const char *image_name);
/**
* Configure a process with more customisations (Create your own vspace, customise cspace size).
diff --git a/libsel4utils/include/sel4utils/sel4_debug.h b/libsel4utils/include/sel4utils/sel4_debug.h
index 1fe1a76..6dc88fb 100644
--- a/libsel4utils/include/sel4utils/sel4_debug.h
+++ b/libsel4utils/include/sel4utils/sel4_debug.h
@@ -13,8 +13,8 @@
#define sel4_error(e, str) ((e == seL4_NoError) ? (void)0 : __sel4_error(e, __FILE__, __func__, __LINE__, str))
-void __sel4_error(int, const char *, const char *, int, char *);
+void __sel4_error(int, const char *, const char *, int, const char *);
-extern char *sel4_errlist[];
+extern const char *sel4_errlist[];
#endif /* _SEL4_DEBUG_ */
diff --git a/libsel4utils/src/elf.c b/libsel4utils/src/elf.c
index 2fe7d78..e14a9e2 100644
--- a/libsel4utils/src/elf.c
+++ b/libsel4utils/src/elf.c
@@ -132,7 +132,7 @@
}
int
-sel4utils_elf_num_regions(char *image_name)
+sel4utils_elf_num_regions(const char *image_name)
{
int i;
unsigned long elf_size;
@@ -183,7 +183,7 @@
}
void *
-sel4utils_elf_reserve(vspace_t *loadee, char *image_name, sel4utils_elf_region_t *regions)
+sel4utils_elf_reserve(vspace_t *loadee, const char *image_name, sel4utils_elf_region_t *regions)
{
unsigned long elf_size;
char *elf_file = cpio_get_file(_cpio_archive, image_name, &elf_size);
@@ -226,7 +226,7 @@
}
void *
-sel4utils_elf_load_record_regions(vspace_t *loadee, vspace_t *loader, vka_t *loadee_vka, vka_t *loader_vka, char *image_name, sel4utils_elf_region_t *regions, int mapanywhere)
+sel4utils_elf_load_record_regions(vspace_t *loadee, vspace_t *loader, vka_t *loadee_vka, vka_t *loader_vka, const char *image_name, sel4utils_elf_region_t *regions, int mapanywhere)
{
unsigned long elf_size;
char *elf_file = cpio_get_file(_cpio_archive, image_name, &elf_size);
@@ -288,7 +288,7 @@
return error == seL4_NoError ? (void*)(seL4_Word)entry_point : NULL;
}
-uintptr_t sel4utils_elf_get_vsyscall(char *image_name)
+uintptr_t sel4utils_elf_get_vsyscall(const char *image_name)
{
unsigned long elf_size;
char *elf_file = cpio_get_file(_cpio_archive, image_name, &elf_size);
@@ -307,7 +307,7 @@
}
void *
-sel4utils_elf_load(vspace_t *loadee, vspace_t *loader, vka_t *loadee_vka, vka_t *loader_vka, char *image_name)
+sel4utils_elf_load(vspace_t *loadee, vspace_t *loader, vka_t *loadee_vka, vka_t *loader_vka, const char *image_name)
{
return sel4utils_elf_load_record_regions(loadee, loader, loadee_vka, loader_vka, image_name, NULL, 0);
}
diff --git a/libsel4utils/src/process.c b/libsel4utils/src/process.c
index fe3b992..ed2fb3a 100644
--- a/libsel4utils/src/process.c
+++ b/libsel4utils/src/process.c
@@ -358,7 +358,7 @@
int
sel4utils_configure_process(sel4utils_process_t *process, vka_t *vka,
- vspace_t *vspace, uint8_t priority, char *image_name)
+ vspace_t *vspace, uint8_t priority, const char *image_name)
{
sel4utils_process_config_t config = {
.is_elf = true,
diff --git a/libsel4utils/src/sel4_debug.c b/libsel4utils/src/sel4_debug.c
index e0ad761..8f64b50 100644
--- a/libsel4utils/src/sel4_debug.c
+++ b/libsel4utils/src/sel4_debug.c
@@ -12,7 +12,7 @@
#include <stdlib.h> /* For abort() */
#include <sel4utils/sel4_debug.h>
-char *sel4_errlist[] = {
+const char *sel4_errlist[] = {
"seL4_NoError",
"seL4_InvalidArgument",
"seL4_InvalidCapability",
@@ -29,7 +29,7 @@
void
__sel4_error(int sel4_error, const char *file,
- const char *function, int line, char * str)
+ const char *function, int line, const char * str)
{
fprintf(stderr, "seL4 Error: %s, function %s, file %s, line %d: %s\n",
sel4_errlist[sel4_error],