| OLD | NEW | 
|---|
| (Empty) |  | 
|  | 1 /*- | 
|  | 2  * Copyright (c) 2008 Ed Schouten <ed@FreeBSD.org> | 
|  | 3  * All rights reserved. | 
|  | 4  * | 
|  | 5  * Redistribution and use in source and binary forms, with or without | 
|  | 6  * modification, are permitted provided that the following conditions | 
|  | 7  * are met: | 
|  | 8  * 1. Redistributions of source code must retain the above copyright | 
|  | 9  *    notice, this list of conditions and the following disclaimer. | 
|  | 10  * 2. Redistributions in binary form must reproduce the above copyright | 
|  | 11  *    notice, this list of conditions and the following disclaimer in the | 
|  | 12  *    documentation and/or other materials provided with the distribution. | 
|  | 13  * | 
|  | 14  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | 
|  | 15  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | 
|  | 16  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | 
|  | 17  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | 
|  | 18  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | 
|  | 19  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | 
|  | 20  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | 
|  | 21  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | 
|  | 22  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | 
|  | 23  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | 
|  | 24  * SUCH DAMAGE. | 
|  | 25  */ | 
|  | 26 | 
|  | 27 #ifndef _NO_POSIX_SPAWN | 
|  | 28 | 
|  | 29 #include <errno.h> | 
|  | 30 #include <spawn.h> | 
|  | 31 #include <stdlib.h> | 
|  | 32 | 
|  | 33 /* | 
|  | 34  * Spawn attributes | 
|  | 35  */ | 
|  | 36 | 
|  | 37 int | 
|  | 38 _DEFUN(posix_spawnattr_init, (ret), | 
|  | 39         posix_spawnattr_t *ret) | 
|  | 40 { | 
|  | 41         posix_spawnattr_t* sa; | 
|  | 42 | 
|  | 43         sa = calloc(1, sizeof(posix_spawnattr_t)); | 
|  | 44         if (sa == NULL) | 
|  | 45                 return (errno); | 
|  | 46 | 
|  | 47         /* Set defaults as specified by POSIX, cleared above */ | 
|  | 48         ret = sa; | 
|  | 49         return (0); | 
|  | 50 } | 
|  | 51 | 
|  | 52 int | 
|  | 53 _DEFUN(posix_spawnattr_destroy, (sa), | 
|  | 54         posix_spawnattr_t *sa) | 
|  | 55 { | 
|  | 56         free(sa); | 
|  | 57         return (0); | 
|  | 58 } | 
|  | 59 | 
|  | 60 int | 
|  | 61 _DEFUN(posix_spawnattr_getflags, (sa, flags), | 
|  | 62         _CONST posix_spawnattr_t * __restrict sa _AND | 
|  | 63         short * __restrict flags) | 
|  | 64 { | 
|  | 65         *flags = sa->sa_flags; | 
|  | 66         return (0); | 
|  | 67 } | 
|  | 68 | 
|  | 69 int | 
|  | 70 _DEFUN(posix_spawnattr_getpgroup, (sa, pgroup), | 
|  | 71         _CONST posix_spawnattr_t * __restrict sa _AND | 
|  | 72         pid_t * __restrict pgroup) | 
|  | 73 { | 
|  | 74         *pgroup = sa->sa_pgroup; | 
|  | 75         return (0); | 
|  | 76 } | 
|  | 77 | 
|  | 78 int | 
|  | 79 _DEFUN(posix_spawnattr_getschedparam, (sa, schedparam), | 
|  | 80         _CONST posix_spawnattr_t * __restrict sa _AND | 
|  | 81         struct sched_param * __restrict schedparam) | 
|  | 82 { | 
|  | 83         *schedparam = sa->sa_schedparam; | 
|  | 84         return (0); | 
|  | 85 } | 
|  | 86 | 
|  | 87 int | 
|  | 88 _DEFUN(posix_spawnattr_getschedpolicy, (sa, schedpolicy), | 
|  | 89         _CONST posix_spawnattr_t * __restrict sa _AND | 
|  | 90         int * __restrict schedpolicy) | 
|  | 91 { | 
|  | 92         *schedpolicy = sa->sa_schedpolicy; | 
|  | 93         return (0); | 
|  | 94 } | 
|  | 95 | 
|  | 96 int | 
|  | 97 _DEFUN(posix_spawnattr_getsigdefault, (sa, sigdefault), | 
|  | 98         _CONST posix_spawnattr_t * __restrict sa _AND | 
|  | 99         sigset_t * __restrict sigdefault) | 
|  | 100 { | 
|  | 101         *sigdefault = sa->sa_sigdefault; | 
|  | 102         return (0); | 
|  | 103 } | 
|  | 104 | 
|  | 105 int | 
|  | 106 _DEFUN(posix_spawnattr_getsigmask, (sa, sigmask), | 
|  | 107         _CONST posix_spawnattr_t * __restrict sa _AND | 
|  | 108         sigset_t * __restrict sigmask) | 
|  | 109 { | 
|  | 110         *sigmask = sa->sa_sigmask; | 
|  | 111         return (0); | 
|  | 112 } | 
|  | 113 | 
|  | 114 int | 
|  | 115 _DEFUN(posix_spawnattr_setflags, (sa, flags), | 
|  | 116         posix_spawnattr_t *sa _AND | 
|  | 117         short flags) | 
|  | 118 { | 
|  | 119         sa->sa_flags = flags; | 
|  | 120         return (0); | 
|  | 121 } | 
|  | 122 | 
|  | 123 int | 
|  | 124 _DEFUN(posix_spawnattr_setpgroup, (sa, pgroup), | 
|  | 125         posix_spawnattr_t *sa _AND | 
|  | 126         pid_t pgroup) | 
|  | 127 { | 
|  | 128         sa->sa_pgroup = pgroup; | 
|  | 129         return (0); | 
|  | 130 } | 
|  | 131 | 
|  | 132 int | 
|  | 133 _DEFUN(posix_spawnattr_setschedparam, (sa, schedparam), | 
|  | 134         posix_spawnattr_t * __restrict sa _AND | 
|  | 135         _CONST struct sched_param * __restrict schedparam) | 
|  | 136 { | 
|  | 137         sa->sa_schedparam = *schedparam; | 
|  | 138         return (0); | 
|  | 139 } | 
|  | 140 | 
|  | 141 int | 
|  | 142 _DEFUN(posix_spawnattr_setschedpolicy, (sa, schedpolicy), | 
|  | 143         posix_spawnattr_t *sa _AND | 
|  | 144         int schedpolicy) | 
|  | 145 { | 
|  | 146         sa->sa_schedpolicy = schedpolicy; | 
|  | 147         return (0); | 
|  | 148 } | 
|  | 149 | 
|  | 150 int | 
|  | 151 _DEFUN(posix_spawnattr_setsigdefault, (sa, sigdefault), | 
|  | 152         posix_spawnattr_t * __restrict sa _AND | 
|  | 153         _CONST sigset_t * __restrict sigdefault) | 
|  | 154 { | 
|  | 155         sa->sa_sigdefault = *sigdefault; | 
|  | 156         return (0); | 
|  | 157 } | 
|  | 158 | 
|  | 159 int | 
|  | 160 _DEFUN(posix_spawnattr_setsigmask, (sa, sigmask), | 
|  | 161         posix_spawnattr_t * __restrict sa _AND | 
|  | 162         _CONST sigset_t * __restrict sigmask) | 
|  | 163 { | 
|  | 164         sa->sa_sigmask = *sigmask; | 
|  | 165         return (0); | 
|  | 166 } | 
|  | 167 | 
|  | 168 #endif  /* !_NO_POSIX_SPAWN */ | 
| OLD | NEW | 
|---|