1181053Srwatson/*- 2184825Srwatson * Copyright (c) 2008 Ed Schouten <ed@FreeBSD.org> 3176627Srwatson * All rights reserved. 4156888Srwatson * 5156888Srwatson * Redistribution and use in source and binary forms, with or without 6156888Srwatson * modification, are permitted provided that the following conditions 7156888Srwatson * are met: 8156888Srwatson * 1. Redistributions of source code must retain the above copyright 9156888Srwatson * notice, this list of conditions and the following disclaimer. 10156888Srwatson * 2. Redistributions in binary form must reproduce the above copyright 11156888Srwatson * notice, this list of conditions and the following disclaimer in the 12156888Srwatson * documentation and/or other materials provided with the distribution. 13156888Srwatson * 14180701Srwatson * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15156888Srwatson * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16156888Srwatson * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17156888Srwatson * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18156888Srwatson * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19156888Srwatson * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20156888Srwatson * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21156888Srwatson * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22156888Srwatson * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23156888Srwatson * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24156888Srwatson * SUCH DAMAGE. 25156888Srwatson */ 26156888Srwatson 27156888Srwatson#include <sys/cdefs.h> 28156888Srwatson__RCSID("$NetBSD: posix_spawn_sched.c,v 1.1 2012/02/11 23:31:24 martin Exp $"); 29156888Srwatson 30156888Srwatson#include "namespace.h" 31178186Srwatson 32178186Srwatson#include <errno.h> 33178186Srwatson#include <fcntl.h> 34156888Srwatson#include <sched.h> 35156888Srwatson#include <signal.h> 36156888Srwatson#include <stdlib.h> 37156888Srwatson#include <string.h> 38156888Srwatson#include <unistd.h> 39156888Srwatson#include <spawn.h> 40156888Srwatson 41156888Srwatson/* 42156888Srwatson * Spawn attributes 43156888Srwatson */ 44156888Srwatson 45156888Srwatsonint 46156888Srwatsonposix_spawnattr_init(posix_spawnattr_t *ret) 47156888Srwatson{ 48156888Srwatson if (ret == NULL) 49156888Srwatson return -1; 50156888Srwatson 51156888Srwatson memset(ret, 0, sizeof(posix_spawnattr_t)); 52176627Srwatson return 0; 53156888Srwatson} 54156888Srwatson 55156888Srwatsonint 56156888Srwatsonposix_spawnattr_destroy(posix_spawnattr_t *sa) 57156888Srwatson{ 58156888Srwatson if (sa == NULL) 59156888Srwatson return -1; 60156888Srwatson 61156888Srwatson return 0; 62156888Srwatson} 63156888Srwatson 64156888Srwatsonint 65156888Srwatsonposix_spawnattr_getflags(const posix_spawnattr_t * __restrict sa, 66156888Srwatson short * __restrict flags) 67156888Srwatson{ 68156888Srwatson *flags = sa->sa_flags; 69156888Srwatson return 0; 70156888Srwatson} 71156888Srwatson 72156888Srwatsonint 73156888Srwatsonposix_spawnattr_getpgroup(const posix_spawnattr_t * __restrict sa, 74156888Srwatson pid_t * __restrict pgroup) 75156888Srwatson{ 76156889Srwatson *pgroup = sa->sa_pgroup; 77156888Srwatson return 0; 78156888Srwatson} 79156888Srwatson 80176627Srwatsonint 81184825Srwatsonposix_spawnattr_getschedparam(const posix_spawnattr_t * __restrict sa, 82184825Srwatson struct sched_param * __restrict schedparam) 83184825Srwatson{ 84184825Srwatson *schedparam = sa->sa_schedparam; 85184825Srwatson return 0; 86184825Srwatson} 87156888Srwatson 88176627Srwatsonint 89176627Srwatsonposix_spawnattr_getschedpolicy(const posix_spawnattr_t * __restrict sa, 90176627Srwatson int * __restrict schedpolicy) 91243722Spjd{ 92184825Srwatson *schedpolicy = sa->sa_schedpolicy; 93156888Srwatson return 0; 94184825Srwatson} 95184825Srwatson 96184825Srwatsonint 97184825Srwatsonposix_spawnattr_getsigdefault(const posix_spawnattr_t * __restrict sa, 98184825Srwatson sigset_t * __restrict sigdefault) 99184825Srwatson{ 100184825Srwatson *sigdefault = sa->sa_sigdefault; 101156888Srwatson return 0; 102162599Srwatson} 103162599Srwatson 104162599Srwatsonint 105162599Srwatsonposix_spawnattr_getsigmask(const posix_spawnattr_t * __restrict sa, 106162599Srwatson sigset_t * __restrict sigmask) 107162599Srwatson{ 108156888Srwatson *sigmask = sa->sa_sigmask; 109162599Srwatson return 0; 110176627Srwatson} 111176627Srwatson 112156888Srwatsonint 113162599Srwatsonposix_spawnattr_setflags(posix_spawnattr_t *sa, short flags) 114162599Srwatson{ 115162599Srwatson sa->sa_flags = flags; 116162599Srwatson return 0; 117241896Skib} 118162599Srwatson 119156888Srwatsonint 120156888Srwatsonposix_spawnattr_setpgroup(posix_spawnattr_t *sa, pid_t pgroup) 121184825Srwatson{ 122176627Srwatson sa->sa_pgroup = pgroup; 123159264Srwatson return 0; 124162599Srwatson} 125159264Srwatson 126180709Srwatsonint 127156888Srwatsonposix_spawnattr_setschedparam(posix_spawnattr_t * __restrict sa, 128156888Srwatson const struct sched_param * __restrict schedparam) 129156889Srwatson{ 130162599Srwatson sa->sa_schedparam = *schedparam; 131162599Srwatson return 0; 132156888Srwatson} 133191990Sattilio 134162599Srwatsonint 135162599Srwatsonposix_spawnattr_setschedpolicy(posix_spawnattr_t *sa, int schedpolicy) 136156888Srwatson{ 137156888Srwatson sa->sa_schedpolicy = schedpolicy; 138162599Srwatson return 0; 139162599Srwatson} 140162599Srwatson 141162599Srwatsonint 142162599Srwatsonposix_spawnattr_setsigdefault(posix_spawnattr_t * __restrict sa, 143162599Srwatson const sigset_t * __restrict sigdefault) 144162599Srwatson{ 145162599Srwatson sa->sa_sigdefault = *sigdefault; 146162599Srwatson return 0; 147162599Srwatson} 148162599Srwatson 149162599Srwatsonint 150162599Srwatsonposix_spawnattr_setsigmask(posix_spawnattr_t * __restrict sa, 151162599Srwatson const sigset_t * __restrict sigmask) 152162599Srwatson{ 153162599Srwatson sa->sa_sigmask = *sigmask; 154162599Srwatson return 0; 155162599Srwatson} 156162599Srwatson