1 /* $NetBSD: spawn_command.h,v 1.2 2017/02/14 01:16:49 christos Exp $ */ 2 3 #ifndef _SPAWN_COMMAND_H_INCLUDED_ 4 #define _SPAWN_COMMAND_H_INCLUDED_ 5 6 /*++ 7 /* NAME 8 /* spawn_command 3h 9 /* SUMMARY 10 /* run external command 11 /* SYNOPSIS 12 /* #include <spawn_command.h> 13 /* DESCRIPTION 14 /* .nf 15 16 /* 17 * Utility library. 18 */ 19 #include <check_arg.h> 20 21 /* Legacy API: type-unchecked arguments, internal use. */ 22 #define SPAWN_CMD_END 0 /* terminator */ 23 #define SPAWN_CMD_ARGV 1 /* command is array */ 24 #define SPAWN_CMD_COMMAND 2 /* command is string */ 25 #define SPAWN_CMD_STDIN 3 /* mail_copy() flags */ 26 #define SPAWN_CMD_STDOUT 4 /* mail_copy() sender */ 27 #define SPAWN_CMD_STDERR 5 /* mail_copy() recipient */ 28 #define SPAWN_CMD_UID 6 /* privileges */ 29 #define SPAWN_CMD_GID 7 /* privileges */ 30 #define SPAWN_CMD_TIME_LIMIT 8 /* time limit */ 31 #define SPAWN_CMD_ENV 9 /* extra environment */ 32 #define SPAWN_CMD_SHELL 10 /* alternative shell */ 33 #define SPAWN_CMD_EXPORT 11 /* exportable parameters */ 34 35 /* Safer API: type-checked arguments, external use. */ 36 #define CA_SPAWN_CMD_END SPAWN_CMD_END 37 #define CA_SPAWN_CMD_ARGV(v) SPAWN_CMD_ARGV, CHECK_PPTR(CA_SPAWN_CMD, char, (v)) 38 #define CA_SPAWN_CMD_COMMAND(v) SPAWN_CMD_COMMAND, CHECK_CPTR(CA_SPAWN_CMD, char, (v)) 39 #define CA_SPAWN_CMD_STDIN(v) SPAWN_CMD_STDIN, CHECK_VAL(CA_SPAWN_CMD, int, (v)) 40 #define CA_SPAWN_CMD_STDOUT(v) SPAWN_CMD_STDOUT, CHECK_VAL(CA_SPAWN_CMD, int, (v)) 41 #define CA_SPAWN_CMD_STDERR(v) SPAWN_CMD_STDERR, CHECK_VAL(CA_SPAWN_CMD, int, (v)) 42 #define CA_SPAWN_CMD_UID(v) SPAWN_CMD_UID, CHECK_VAL(CA_SPAWN_CMD, uid_t, (v)) 43 #define CA_SPAWN_CMD_GID(v) SPAWN_CMD_GID, CHECK_VAL(CA_SPAWN_CMD, gid_t, (v)) 44 #define CA_SPAWN_CMD_TIME_LIMIT(v) SPAWN_CMD_TIME_LIMIT, CHECK_VAL(CA_SPAWN_CMD, int, (v)) 45 #define CA_SPAWN_CMD_ENV(v) SPAWN_CMD_ENV, CHECK_PPTR(CA_SPAWN_CMD, char, (v)) 46 #define CA_SPAWN_CMD_SHELL(v) SPAWN_CMD_SHELL, CHECK_CPTR(CA_SPAWN_CMD, char, (v)) 47 #define CA_SPAWN_CMD_EXPORT(v) SPAWN_CMD_EXPORT, CHECK_PPTR(CA_SPAWN_CMD, char, (v)) 48 49 CHECK_VAL_HELPER_DCL(CA_SPAWN_CMD, uid_t); 50 CHECK_VAL_HELPER_DCL(CA_SPAWN_CMD, int); 51 CHECK_VAL_HELPER_DCL(CA_SPAWN_CMD, gid_t); 52 CHECK_PPTR_HELPER_DCL(CA_SPAWN_CMD, char); 53 CHECK_CPTR_HELPER_DCL(CA_SPAWN_CMD, char); 54 55 extern WAIT_STATUS_T spawn_command(int,...); 56 57 /* LICENSE 58 /* .ad 59 /* .fi 60 /* The Secure Mailer license must be distributed with this software. 61 /* AUTHOR(S) 62 /* Wietse Venema 63 /* IBM T.J. Watson Research 64 /* P.O. Box 704 65 /* Yorktown Heights, NY 10598, USA 66 /*--*/ 67 68 #endif 69