1/*
2 This file is part of the KDE libraries
3 Copyright (c) 1999 Waldo Bastian <bastian@kde.org>
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License version 2 as published by the Free Software Foundation.
8
9 This library is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 Library General Public License for more details.
13
14 You should have received a copy of the GNU Library General Public License
15 along with this library; see the file COPYING.LIB. If not, write to
16 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
17 Boston, MA 02110-1301, USA.
18*/
19
20#ifndef _KLAUNCHER_CMDS_H_
21#define _KLAUNCHER_CMDS_H_
22
23#define KDED_EXENAME "kded4"
24
25typedef struct
26{
27 long cmd;
28 long arg_length;
29} klauncher_header;
30
31/* Launcher commands: */
32
33#define LAUNCHER_EXEC 1
34/*
35 * LAUNCHER_EXEC
36 *
37 * Start a new process. Try using LAUNCHER_EXEC_NEW instead.
38 * There will be no app startup notification.
39 *
40 * long argc: number of arguments
41 * char *args: arguments, argument 0 is the program to start.
42 */
43
44
45#define LAUNCHER_SETENV 2
46/*
47 * LAUNCHER_SETENV
48 *
49 * Change environment of future processes launched via kdeinit.
50 * DON'T use this if you want to change environment only for one
51 * application you're going to start.
52 *
53 * char *env_name;
54 * char *env_value;
55 */
56
57#define LAUNCHER_CHILD_DIED 3
58/*
59 * LAUNCHER_CHILD_DIED
60 *
61 * Notification A child of kdeinit died.
62 *
63 * long pid;
64 * long exit_code;
65 */
66
67#define LAUNCHER_OK 4
68/*
69 * LAUNCHER_OK
70 *
71 * Notification Last process launched ok.
72 *
73 * long pid;
74 */
75
76#define LAUNCHER_ERROR 5
77/*
78 * LAUNCHER_ERROR
79 *
80 * Notification Last process could not be launched.
81 *
82 * char *error msg (utf8)
83 */
84
85#define LAUNCHER_SHELL 6
86/*
87 * LAUNCHER_SHELL
88 *
89 * Start a new process and use given environment.
90 * Starts app-startup notification.
91 *
92 * long argc: number of arguments
93 * char *args: arguments, argument 0 is the program to start.
94 * char *cwd: Working directory.
95 * long envc: number of environment vars
96 * char *envs: environment strings.
97 * int avoid_loops : avoid using the first path in $PATH where
98 * this process binary is found in order to avoid
99 * infinite loop by binary->kdeinit_wrapper link in $PATH
100 * char* startup_id: app startup notification id, "0" for none,
101 * "" ( empty string ) is the default
102 */
103
104#define LAUNCHER_TERMINATE_KDE 7
105
106/*
107 * LAUNCHER_TERMINATE_KDEINIT
108 *
109 * Suicide is painless
110 */
111#define LAUNCHER_TERMINATE_KDEINIT 8
112
113#define LAUNCHER_DEBUG_WAIT 9
114/*
115 * LAUNCHER_DEBUG_WAIT
116 *
117 * Next process started will do a sleep(1000000)
118 * before calling main()/kdemain()
119 *
120 * (Used for debugging io-slaves)
121 */
122
123#define LAUNCHER_EXT_EXEC 10
124/*
125 * LAUNCHER_EXT_EXEC
126 *
127 * Start a new process. The given environment variables will
128 * be added to its environment before starting it.
129 * Starts app-startup notification.
130 *
131 * long argc: number of arguments
132 * char *args: arguments, argument 0 is the program to start.
133 * long envc: number of environment vars
134 * char *envs: environment strings.
135 * int avoid_loops : avoid using the first path in $PATH where
136 * this process binary is found in order to avoid
137 * infinite loop by binary->kdeinit_wrapper link in $PATH
138 * char* startup_id: app startup notification id, "0" for none,
139 * "" ( empty string ) is the default
140 *
141 */
142
143
144#define LAUNCHER_KWRAPPER 11
145/*
146 * LAUNCHER_KWRAPPER
147 *
148 * Start a new process, use given environment, pass signals and output.
149 * Starts app-startup notification.
150 *
151 * long argc: number of arguments
152 * char *args: arguments, argument 0 is the program to start.
153 * char *cwd: Working directory.
154 * long envc: number of environment vars
155 * char *envs: environment strings.
156 * char *tty: tty to redirect stdout/stderr to.
157 * int avoid_loops : avoid using the first path in $PATH where
158 * this process binary is found in order to avoid
159 * infinite loop by binary->kdeinit_wrapper link in $PATH
160 * char* startup_id: app startup notification id, "0" for none,
161 * "" ( empty string ) is the default
162 */
163
164#define LAUNCHER_EXEC_NEW 12
165/*
166 * LAUNCHER_EXEC_NEW
167 *
168 * Start a new process. An improved version of LAUNCHER_EXEC.
169 * The given environment variables will be added
170 * to its environment before starting it.
171 * There will be no app startup notification.
172 *
173 * long argc: number of arguments
174 * char *args: arguments, argument 0 is the program to start.
175 * long envc: number of environment vars
176 * char *envs: environment strings.
177 * int avoid_loops : avoid using the first path in $PATH where
178 * this process binary is found in order to avoid
179 * infinite loop by binary->kdeinit_wrapper link in $PATH
180 */
181
182const char* commandToString(int command);
183
184#endif
185