1 /* $OpenBSD: privsep.h,v 1.5 2007/02/13 21:54:22 stevesk Exp $ */ 2 /* $DragonFly: src/sbin/dhclient/privsep.h,v 1.1 2008/08/30 16:07:58 hasso Exp $ */ 3 4 /* 5 * Copyright (c) 2004 Henning Brauer <henning@openbsd.org> 6 * 7 * Permission to use, copy, modify, and distribute this software for any 8 * purpose with or without fee is hereby granted, provided that the above 9 * copyright notice and this permission notice appear in all copies. 10 * 11 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 12 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 13 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 14 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 15 * WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN 16 * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 17 * OF OR IN CONNECTION WITH THE USE, ABUSE OR PERFORMANCE OF THIS SOFTWARE. 18 */ 19 20 #include <sys/types.h> 21 22 struct buf { 23 u_char *buf; 24 size_t size; 25 size_t wpos; 26 size_t rpos; 27 }; 28 29 enum imsg_code { 30 IMSG_NONE, 31 IMSG_SCRIPT_INIT, 32 IMSG_SCRIPT_WRITE_PARAMS, 33 IMSG_SCRIPT_GO, 34 IMSG_SCRIPT_GO_RET 35 }; 36 37 struct imsg_hdr { 38 enum imsg_code code; 39 size_t len; 40 }; 41 42 struct buf *buf_open(size_t); 43 void buf_add(struct buf *, void *, size_t); 44 void buf_close(int, struct buf *); 45 void buf_read(int, void *, size_t); 46 void dispatch_imsg(int); 47