xref: /aosp_15_r20/external/toybox/toys/example/hello.c (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1*cf5a6c84SAndroid Build Coastguard Worker /* hello.c - A hello world program. (Simple template for new commands.)
2*cf5a6c84SAndroid Build Coastguard Worker  *
3*cf5a6c84SAndroid Build Coastguard Worker  * Copyright 2012 Rob Landley <[email protected]>
4*cf5a6c84SAndroid Build Coastguard Worker  *
5*cf5a6c84SAndroid Build Coastguard Worker  * See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/
6*cf5a6c84SAndroid Build Coastguard Worker  * See http://refspecs.linuxfoundation.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/cmdbehav.html
7*cf5a6c84SAndroid Build Coastguard Worker  * See https://www.ietf.org/rfc/rfc3.txt
8*cf5a6c84SAndroid Build Coastguard Worker  * See https://man7.org/linux/man-pages/man1/intro.1.html
9*cf5a6c84SAndroid Build Coastguard Worker  * No standard.
10*cf5a6c84SAndroid Build Coastguard Worker 
11*cf5a6c84SAndroid Build Coastguard Worker USE_HELLO(NEWTOY(hello, 0, TOYFLAG_USR|TOYFLAG_BIN))
12*cf5a6c84SAndroid Build Coastguard Worker 
13*cf5a6c84SAndroid Build Coastguard Worker config HELLO
14*cf5a6c84SAndroid Build Coastguard Worker   bool "hello"
15*cf5a6c84SAndroid Build Coastguard Worker   default n
16*cf5a6c84SAndroid Build Coastguard Worker   help
17*cf5a6c84SAndroid Build Coastguard Worker     usage: hello
18*cf5a6c84SAndroid Build Coastguard Worker 
19*cf5a6c84SAndroid Build Coastguard Worker     A hello world program.
20*cf5a6c84SAndroid Build Coastguard Worker 
21*cf5a6c84SAndroid Build Coastguard Worker     Mostly used as a simple template for adding new commands.
22*cf5a6c84SAndroid Build Coastguard Worker     Occasionally nice to smoketest kernel booting via "init=/usr/bin/hello".
23*cf5a6c84SAndroid Build Coastguard Worker */
24*cf5a6c84SAndroid Build Coastguard Worker 
25*cf5a6c84SAndroid Build Coastguard Worker #define FOR_hello
26*cf5a6c84SAndroid Build Coastguard Worker #include "toys.h"
27*cf5a6c84SAndroid Build Coastguard Worker 
GLOBALS(int unused;)28*cf5a6c84SAndroid Build Coastguard Worker GLOBALS(
29*cf5a6c84SAndroid Build Coastguard Worker   int unused;
30*cf5a6c84SAndroid Build Coastguard Worker )
31*cf5a6c84SAndroid Build Coastguard Worker 
32*cf5a6c84SAndroid Build Coastguard Worker void hello_main(void)
33*cf5a6c84SAndroid Build Coastguard Worker {
34*cf5a6c84SAndroid Build Coastguard Worker   xprintf("Hello world\n");
35*cf5a6c84SAndroid Build Coastguard Worker 
36*cf5a6c84SAndroid Build Coastguard Worker   // Avoid kernel panic if run as init.
37*cf5a6c84SAndroid Build Coastguard Worker   if (getpid() == 1) getchar();
38*cf5a6c84SAndroid Build Coastguard Worker }
39