@@ -214,12 +214,17 @@ fail:
return NULL;
}
-int pdbg_set_backend(enum pdbg_backend backend, const char *backend_option)
+bool pdbg_set_backend(enum pdbg_backend backend, const char *backend_option)
{
+ if (pdbg_target_root()) {
+ pdbg_log(PDBG_ERROR, "pdbg_set_backend() must be called before pdbg_targets_init()\n");
+ return false;
+ }
+
pdbg_backend = backend;
pdbg_backend_option = backend_option;
- return 0;
+ return true;
}
const char *pdbg_get_backend_option(void)
@@ -107,7 +107,7 @@ enum pdbg_target_status pdbg_target_probe(struct pdbg_target *target);
void pdbg_target_release(struct pdbg_target *target);
enum pdbg_target_status pdbg_target_status(struct pdbg_target *target);
void pdbg_target_status_set(struct pdbg_target *target, enum pdbg_target_status status);
-int pdbg_set_backend(enum pdbg_backend backend, const char *backend_option);
+bool pdbg_set_backend(enum pdbg_backend backend, const char *backend_option);
void *pdbg_default_dtb(void);
uint32_t pdbg_target_index(struct pdbg_target *target);
char *pdbg_target_path(struct pdbg_target *target);
@@ -596,7 +596,8 @@ int main(int argc, char *argv[])
}
if (backend)
- pdbg_set_backend(backend, device_node);
+ if (!pdbg_set_backend(backend, device_node))
+ return 1;
if (!pdbg_targets_init(NULL))
return 1;
@@ -73,7 +73,7 @@ static void test1(void)
{
struct pdbg_target *root, *target;
- pdbg_set_backend(PDBG_BACKEND_FAKE, NULL);
+ assert(pdbg_set_backend(PDBG_BACKEND_FAKE, NULL));
assert(pdbg_targets_init(NULL));
root = pdbg_target_root();
@@ -121,7 +121,7 @@ static void test2(void)
struct pdbg_target *root, *target;
enum pdbg_target_status status;
- pdbg_set_backend(PDBG_BACKEND_FAKE, NULL);
+ assert(pdbg_set_backend(PDBG_BACKEND_FAKE, NULL));
assert(pdbg_targets_init(NULL));
root = pdbg_target_root();
@@ -198,7 +198,7 @@ static void test3(void)
struct pdbg_target *root, *target;
enum pdbg_target_status status;
- pdbg_set_backend(PDBG_BACKEND_FAKE, NULL);
+ assert(pdbg_set_backend(PDBG_BACKEND_FAKE, NULL));
assert(pdbg_targets_init(NULL));
root = pdbg_target_root();
@@ -65,7 +65,7 @@ int main(void)
const char *name;
int count, i;
- pdbg_set_backend(PDBG_BACKEND_FAKE, NULL);
+ assert(pdbg_set_backend(PDBG_BACKEND_FAKE, NULL));
assert(pdbg_targets_init(NULL));
root = pdbg_target_root();