diff toys/example/hello.c @ 1267:dd2fd057111f draft

Add example directory, move hello.c into it, add skeleton.c to demonstrate more complciated stuff (multiple commands per file, etc), and have genconfig.sh sort backwards so posix is first and example last in menuconfig.
author Rob Landley <rob@landley.net>
date Wed, 23 Apr 2014 17:23:09 -0500
parents toys/other/hello.c@9e105bab92e5
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/toys/example/hello.c	Wed Apr 23 17:23:09 2014 -0500
@@ -0,0 +1,35 @@
+/* hello.c - A hello world program. (Simple template for new commands.)
+ *
+ * Copyright 2012 Rob Landley <rob@landley.net>
+ *
+ * See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/
+ * See http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/cmdbehav.html
+
+USE_HELLO(NEWTOY(hello, 0, TOYFLAG_USR|TOYFLAG_BIN))
+
+config HELLO
+  bool "hello"
+  default n
+  help
+    usage: hello [-s]
+
+    A hello world program.  You don't need this.
+
+    Mostly used as a simple template for adding new commands.
+    Occasionally nice to smoketest kernel booting via "init=/usr/bin/hello".
+*/
+
+#define FOR_hello
+#include "toys.h"
+
+GLOBALS(
+  int unused;
+)
+
+void hello_main(void)
+{
+  xprintf("Hello world\n");
+
+  // Avoid kernel panic if run as init.
+  if (getpid() == 1) wait(&TT.unused);
+}