home *** CD-ROM | disk | FTP | other *** search
/ Clickx 115 / Clickx 115.iso / software / tools / windows / tails-i386-0.16.iso / live / filesystem.squashfs / usr / include / initreq.h < prev   
Encoding:
C/C++ Source or Header  |  2012-03-27  |  2.4 KB  |  85 lines

  1. /*
  2.  * initreq.h    Interface to talk to init through /dev/initctl.
  3.  *
  4.  *        Copyright (C) 1995-2004 Miquel van Smoorenburg
  5.  *
  6.  *        This program is free software; you can redistribute it and/or modify
  7.  *        it under the terms of the GNU General Public License as published by
  8.  *        the Free Software Foundation; either version 2 of the License, or
  9.  *        (at your option) any later version.
  10.  *
  11.  *        This program is distributed in the hope that it will be useful,
  12.  *        but WITHOUT ANY WARRANTY; without even the implied warranty of
  13.  *        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  14.  *        GNU General Public License for more details.
  15.  *
  16.  *        You should have received a copy of the GNU General Public License
  17.  *        along with this program; if not, write to the Free Software
  18.  *        Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  19.  *
  20.  * Version:     @(#)initreq.h  1.28  31-Mar-2004 MvS
  21.  *
  22.  */
  23. #ifndef _INITREQ_H
  24. #define _INITREQ_H
  25.  
  26. #include <sys/param.h>
  27.  
  28. #if defined(__FreeBSD_kernel__)
  29. #  define INIT_FIFO  "/etc/.initctl"
  30. #else
  31. #  define INIT_FIFO  "/dev/initctl"
  32. #endif
  33.  
  34. #define INIT_MAGIC 0x03091969
  35. #define INIT_CMD_START        0
  36. #define INIT_CMD_RUNLVL        1
  37. #define INIT_CMD_POWERFAIL    2
  38. #define INIT_CMD_POWERFAILNOW    3
  39. #define INIT_CMD_POWEROK    4
  40. #define INIT_CMD_BSD        5
  41. #define INIT_CMD_SETENV        6
  42. #define INIT_CMD_UNSETENV    7
  43.  
  44. #ifdef MAXHOSTNAMELEN
  45. #  define INITRQ_HLEN    MAXHOSTNAMELEN
  46. #else
  47. #  define INITRQ_HLEN    64
  48. #endif
  49.  
  50. /*
  51.  *    This is what BSD 4.4 uses when talking to init.
  52.  *    Linux doesn't use this right now.
  53.  */
  54. struct init_request_bsd {
  55.     char    gen_id[8];        /* Beats me.. telnetd uses "fe" */
  56.     char    tty_id[16];        /* Tty name minus /dev/tty      */
  57.     char    host[INITRQ_HLEN];    /* Hostname                     */
  58.     char    term_type[16];        /* Terminal type                */
  59.     int    signal;            /* Signal to send               */
  60.     int    pid;            /* Process to send to           */
  61.     char    exec_name[128];            /* Program to execute           */
  62.     char    reserved[128];        /* For future expansion.        */
  63. };
  64.  
  65.  
  66. /*
  67.  *    Because of legacy interfaces, "runlevel" and "sleeptime"
  68.  *    aren't in a seperate struct in the union.
  69.  *
  70.  *    The weird sizes are because init expects the whole
  71.  *    struct to be 384 bytes.
  72.  */
  73. struct init_request {
  74.     int    magic;            /* Magic number                 */
  75.     int    cmd;            /* What kind of request         */
  76.     int    runlevel;        /* Runlevel to change to        */
  77.     int    sleeptime;        /* Time between TERM and KILL   */
  78.     union {
  79.         struct init_request_bsd    bsd;
  80.         char            data[368];
  81.     } i;
  82. };
  83.  
  84. #endif
  85.