Lines Matching refs:dsmp

120 run_script(dhcp_smach_t *dsmp, const char *event, int fd)  in run_script()  argument
145 (void) execl(path, name, dsmp->dsm_name, event, NULL); in run_script()
196 script_init(dhcp_smach_t *dsmp) in script_init() argument
198 dsmp->dsm_script_pid = -1; in script_init()
199 dsmp->dsm_script_helper_pid = -1; in script_init()
200 dsmp->dsm_script_event_id = -1; in script_init()
201 dsmp->dsm_script_fd = -1; in script_init()
202 dsmp->dsm_script_callback = NULL; in script_init()
203 dsmp->dsm_script_event = NULL; in script_init()
204 dsmp->dsm_callback_arg = NULL; in script_init()
215 script_cleanup(dhcp_smach_t *dsmp) in script_cleanup() argument
221 dsmp->dsm_script_pid = -1; in script_cleanup()
222 dsmp->dsm_script_helper_pid = -1; in script_cleanup()
224 if (dsmp->dsm_script_fd != -1) { in script_cleanup()
225 assert(dsmp->dsm_script_event_id != -1); in script_cleanup()
226 (void) iu_unregister_event(eh, dsmp->dsm_script_event_id, NULL); in script_cleanup()
227 (void) close(dsmp->dsm_script_fd); in script_cleanup()
229 assert(dsmp->dsm_script_callback != NULL); in script_cleanup()
230 dsmp->dsm_script_callback(dsmp, dsmp->dsm_callback_arg); in script_cleanup()
231 script_init(dsmp); in script_cleanup()
233 release_smach(dsmp); /* hold from script_start() */ in script_cleanup()
282 script_start(dhcp_smach_t *dsmp, const char *event, in script_start() argument
292 if (dsmp->dsm_script_pid != -1) { in script_start()
295 script_stop(dsmp); in script_start()
328 run_script(dsmp, event, fds[1]); in script_start()
335 if (read(fds[0], &dsmp->dsm_script_pid, sizeof (pid_t)) != in script_start()
338 dsmp->dsm_script_pid = -1; in script_start()
343 dsmp->dsm_script_helper_pid = pid; in script_start()
344 event_id = iu_register_event(eh, fds[0], POLLIN, script_exit, dsmp); in script_start()
347 script_stop(dsmp); in script_start()
352 dsmp->dsm_script_event_id = event_id; in script_start()
353 dsmp->dsm_script_callback = callback; in script_start()
354 dsmp->dsm_script_event = event; in script_start()
355 dsmp->dsm_callback_arg = arg; in script_start()
356 dsmp->dsm_script_fd = fds[0]; in script_start()
357 hold_smach(dsmp); in script_start()
362 n = callback(dsmp, arg); in script_start()
377 script_stop(dhcp_smach_t *dsmp) in script_stop() argument
379 if (dsmp->dsm_script_pid != -1) { in script_stop()
380 assert(dsmp->dsm_script_helper_pid != -1); in script_stop()
387 (void) kill(dsmp->dsm_script_pid, SIGTERM); in script_stop()
388 (void) kill(dsmp->dsm_script_helper_pid, SIGTERM); in script_stop()
391 script_cleanup(dsmp); in script_stop()