diff --git a/user/diagdummy/block.h b/user/diagdummy/block.h deleted file mode 100644 index cee21ca..0000000 --- a/user/diagdummy/block.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef DIAGDUMMY_BLOCK_H_ -#define DIAGDUMMY_BLOCK_H_ - -void diagdummy_block(void); - -#endif // DIAGDUMMY_BLOCK_H_ diff --git a/user/diagdummy/diagdummy.c b/user/diagdummy/diagdummy.c index 815a1f1..fd2399e 100644 --- a/user/diagdummy/diagdummy.c +++ b/user/diagdummy/diagdummy.c @@ -1,5 +1,7 @@ #include -#include "block.h" + +#define CMDS(X) \ + X(block) X(openf) void main(void) { if (argslen() == 0) { @@ -9,9 +11,13 @@ void main(void) { char *cmd = args()[0]; - if (string_strcmp(cmd, "block") == 0) { - diagdummy_block(); - } else { - uprintf("diagdummy: unknown cmd %s\n", cmd); + #define X(name) if (string_strcmp(cmd, #name) == 0) { \ + extern void diagdummy_ ## name(void); \ + diagdummy_ ## name(); \ + return; \ } + CMDS(X) + #undef X + + uprintf("diagdummy: unknown cmd %s\n", cmd); } diff --git a/user/diagdummy/openf.c b/user/diagdummy/openf.c new file mode 100644 index 0000000..27d57ad --- /dev/null +++ b/user/diagdummy/openf.c @@ -0,0 +1,9 @@ +#include +#include +#include + +void diagdummy_openf(void) { + fsh_t h = fs_openf("base:/bin/init", FS_OF_READ); + uprintf("h = %d\n", h); + for(;;); +}