18c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross/*
28c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * Copyright (c) 1989 The Regents of the University of California.
38c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * All rights reserved.
48c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross *
58c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * Redistribution and use in source and binary forms, with or without
68c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * modification, are permitted provided that the following conditions
78c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * are met:
88c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * 1. Redistributions of source code must retain the above copyright
98c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross *    notice, this list of conditions and the following disclaimer.
108c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * 2. Redistributions in binary form must reproduce the above copyright
118c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross *    notice, this list of conditions and the following disclaimer in the
128c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross *    documentation and/or other materials provided with the distribution.
138c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * 3. Neither the name of the University nor the names of its contributors
148c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross *    may be used to endorse or promote products derived from this software
158c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross *    without specific prior written permission.
168c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross *
178c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
188c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
198c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
208c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
218c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
228c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
238c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
248c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
258c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
268c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
278c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * SUCH DAMAGE.
288c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross */
298c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross
308c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross#include <sys/types.h>
318c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross#include <signal.h>
328c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross#include <errno.h>
338c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross
348c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross/*
358c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross * Backwards-compatible killpg().
368c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross */
378c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Crossint
388c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Crosskillpg(pid_t pgid, int sig)
398c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross{
408c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross	if (pgid == 1) {
418c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross		errno = ESRCH;
428c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross		return (-1);
438c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross	}
448c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross	return (kill(-pgid, sig));
458c59d96e243ba1a05d7d9ab7a14d1a00e20bad4aColin Cross}
46