6 * Copyright (C) 2004 Ling, Xiaofeng <xiaofeng.ling@intel.com>
7 * Copyright (C) 2004 Kay Sievers <kay.sievers@vrfy.org>
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation version 2 of the License.
14 * This program is distributed in the hope that it will be useful, but
15 * WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * General Public License for more details.
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, write to the Free Software Foundation, Inc.,
21 * 675 Mass Ave, Cambridge, MA 02139, USA.
27 #define UDEV_MAGIC "udevd_" UDEV_VERSION
28 #define UDEVD_SOCK_PATH "udevd"
29 #define UDEVSEND_WAIT_MAX_SECONDS 3
30 #define UDEVSEND_WAIT_LOOP_PER_SECOND 10
32 #define UDEVD_PRIORITY -4
33 #define UDEV_PRIORITY -2
35 /* duration of initialization phase with shorter timeout */
36 #define UDEVD_INIT_TIME 5
37 #define UDEVD_INIT_EVENT_TIMEOUT 2
39 /* timeout to wait for missing events */
40 #define UDEVD_EVENT_TIMEOUT 5
42 /* maximum limit of runnig childs */
43 #define UDEVD_MAX_CHILDS 64
44 /* start to throttle forking if maximum number of running childs in our session is reached */
45 #define UDEVD_MAX_CHILDS_RUNNING 8
47 /* environment buffer, should match the kernel's size in lib/kobject_uevent.h */
48 #define UEVENT_BUFFER_SIZE 1024
49 #define UEVENT_NUM_ENVP 32
53 UDEVD_UEVENT_UDEVSEND,
54 UDEVD_UEVENT_INITSEND,
56 UDEVD_STOP_EXEC_QUEUE,
57 UDEVD_START_EXEC_QUEUE,
65 enum udevd_msg_type type;
66 char envbuf[UEVENT_BUFFER_SIZE+512];
70 enum udevd_msg_type type;
71 struct list_head node;
77 unsigned long long seqnum;
80 char *envp[UEVENT_NUM_ENVP+1];