File indexing completed on 2024-04-28 11:40:32

0001 /*
0002     This file is part of the KDE libraries
0003     SPDX-FileCopyrightText: 1999 Waldo Bastian <bastian@kde.org>
0004 
0005     SPDX-License-Identifier: LGPL-2.0-only
0006 */
0007 
0008 #ifndef _KLAUNCHER_CMDS_H_
0009 #define _KLAUNCHER_CMDS_H_
0010 
0011 #define KDED_EXENAME "kded5"
0012 
0013 typedef struct {
0014     long cmd;
0015     long arg_length;
0016 } klauncher_header;
0017 
0018 /* Launcher commands: */
0019 
0020 #define LAUNCHER_EXEC   1
0021 /*
0022  * LAUNCHER_EXEC
0023  *
0024  * Start a new process. Try using LAUNCHER_EXEC_NEW instead.
0025  * There will be no app startup notification.
0026  *
0027  * long argc: number of arguments
0028  * char *args: arguments, argument 0 is the program to start.
0029  */
0030 
0031 #define LAUNCHER_SETENV 2
0032 /*
0033  * LAUNCHER_SETENV
0034  *
0035  * Change environment of future processes launched via kdeinit.
0036  * DON'T use this if you want to change environment only for one
0037  * application you're going to start.
0038  *
0039  * char *env_name;
0040  * char *env_value;
0041  */
0042 
0043 #define LAUNCHER_CHILD_DIED 3
0044 /*
0045  * LAUNCHER_CHILD_DIED
0046  *
0047  * Notification A child of kdeinit died.
0048  *
0049  * long pid;
0050  * long exit_code;
0051  */
0052 
0053 #define LAUNCHER_OK 4
0054 /*
0055  * LAUNCHER_OK
0056  *
0057  * Notification Last process launched ok.
0058  *
0059  * long pid;
0060  */
0061 
0062 #define LAUNCHER_ERROR 5
0063 /*
0064  * LAUNCHER_ERROR
0065  *
0066  * Notification Last process could not be launched.
0067  *
0068  * char *error msg (utf8)
0069  */
0070 
0071 #define LAUNCHER_SHELL  6
0072 /*
0073  * LAUNCHER_SHELL
0074  *
0075  * Start a new process and use given environment.
0076  * Starts app-startup notification.
0077  *
0078  * long argc: number of arguments
0079  * char *args: arguments, argument 0 is the program to start.
0080  * char *cwd: Working directory.
0081  * long envc: number of environment vars
0082  * char *envs: environment strings.
0083  * int avoid_loops : avoid using the first path in $PATH where
0084  *    this process binary is found in order to avoid
0085  *    infinite loop by binary->kdeinit_wrapper link in $PATH
0086  * char* startup_id: app startup notification id, "0" for none,
0087  *   "" ( empty string ) is the default
0088  */
0089 
0090 #define LAUNCHER_TERMINATE_KDE 7
0091 
0092 /*
0093  * LAUNCHER_TERMINATE_KDEINIT
0094  *
0095  * Suicide is painless
0096  */
0097 #define LAUNCHER_TERMINATE_KDEINIT  8
0098 
0099 #define LAUNCHER_DEBUG_WAIT     9
0100 /*
0101  * LAUNCHER_DEBUG_WAIT
0102  *
0103  * Next process started will do a sleep(1000000)
0104  * before calling main()/kdemain()
0105  *
0106  * (Used for debugging io-slaves)
0107  */
0108 
0109 #define LAUNCHER_EXT_EXEC   10
0110 /*
0111  * LAUNCHER_EXT_EXEC
0112  *
0113  * Start a new process. The given environment variables will
0114  * be added to its environment before starting it.
0115  * Starts app-startup notification.
0116  *
0117  * long argc: number of arguments
0118  * char *args: arguments, argument 0 is the program to start.
0119  * long envc: number of environment vars
0120  * char *envs: environment strings.
0121  * int avoid_loops : avoid using the first path in $PATH where
0122  *    this process binary is found in order to avoid
0123  *    infinite loop by binary->kdeinit_wrapper link in $PATH
0124  * char* startup_id: app startup notification id, "0" for none,
0125  *   "" ( empty string ) is the default
0126  *
0127  */
0128 
0129 #define LAUNCHER_KWRAPPER   11
0130 /*
0131  * LAUNCHER_KWRAPPER
0132  *
0133  * Start a new process, use given environment, pass signals and output.
0134  * Starts app-startup notification.
0135  *
0136  * long argc: number of arguments
0137  * char *args: arguments, argument 0 is the program to start.
0138  * char *cwd: Working directory.
0139  * long envc: number of environment vars
0140  * char *envs: environment strings.
0141  * char *tty: tty to redirect stdout/stderr to.
0142  * int avoid_loops : avoid using the first path in $PATH where
0143  *    this process binary is found in order to avoid
0144  *    infinite loop by binary->kdeinit_wrapper link in $PATH
0145  * char* startup_id: app startup notification id, "0" for none,
0146  *   "" ( empty string ) is the default
0147  */
0148 
0149 #define LAUNCHER_EXEC_NEW   12
0150 /*
0151  * LAUNCHER_EXEC_NEW
0152  *
0153  * Start a new process. An improved version of LAUNCHER_EXEC.
0154  * The given environment variables will be added
0155  *  to its environment before starting it.
0156  * There will be no app startup notification.
0157  *
0158  * long argc: number of arguments
0159  * char *args: arguments, argument 0 is the program to start.
0160  * long envc: number of environment vars
0161  * char *envs: environment strings.
0162  * int avoid_loops : avoid using the first path in $PATH where
0163  *    this process binary is found in order to avoid
0164  *    infinite loop by binary->kdeinit_wrapper link in $PATH
0165  * char *cwd: Working directory (optional).
0166  */
0167 
0168 const char *commandToString(int command);
0169 
0170 #endif