aboutsummaryrefslogtreecommitdiff
path: root/toys/example/hello.c
blob: 3e68f21511789b87cc3de49c8e44edb2a0cc0664 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
/* 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
 * See https://www.ietf.org/rfc/rfc3.txt
 * See http://man7.org/linux/man-pages/dir_section_1.html

USE_HELLO(NEWTOY(hello, 0, TOYFLAG_USR|TOYFLAG_BIN))

config HELLO
  bool "hello"
  default n
  help
    usage: hello

    A hello world program.

    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);
}