blob: 00fa4caef274d28afb9de6977bd5a8070b7f3538 [file] [log] [blame]
nstrazf307d5f2000-09-14 21:54:44 +00001/*
2 * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of version 2 of the GNU General Public License as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it would be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
11 *
12 * Further, this software is distributed without any warranty that it is
13 * free of the rightful claim of any third person regarding infringement
14 * or the like. Any license provided herein, whether implied or
15 * otherwise, applies only to this software file. Patent licenses, if
16 * any, provided herein do not apply to combinations of this program with
17 * other software, or any other product whatsoever.
18 *
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, write the Free Software Foundation, Inc., 59
21 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
22 *
23 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
24 * Mountain View, CA 94043, or:
25 *
26 * http://www.sgi.com
27 *
28 * For further information regarding this notice, see:
29 *
30 * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
31 *
32 */
nstrazcde46c82001-03-08 19:13:21 +000033/* $Id: zoolib.h,v 1.3 2001/03/08 19:13:21 nstraz Exp $ */
nstrazf307d5f2000-09-14 21:54:44 +000034#ifndef ZOOLIB_H
35#define ZOOLIB_H
36
37#include <stdio.h>
38#include <sys/types.h>
39#include <unistd.h>
40#include <errno.h>
41#include <fcntl.h>
42#include <sys/signal.h>
43
nstrazcde46c82001-03-08 19:13:21 +000044int rec_signal; /* received signal */
nstrazcd87d682000-09-21 20:42:31 +000045int send_signal; /* signal to send */
nstrazf307d5f2000-09-14 21:54:44 +000046
nstrazcde46c82001-03-08 19:13:21 +000047typedef FILE *zoo_t;
48#define ZELEN 512
49char zoo_error[ZELEN];
50#define BUFLEN 81
51
nstrazf307d5f2000-09-14 21:54:44 +000052int lock_file( FILE *fp, short ltype, char **errmsg );
nstrazcde46c82001-03-08 19:13:21 +000053/* FILE *open_file( char *file, char *mode, char **errmsg ); */
nstrazf307d5f2000-09-14 21:54:44 +000054
55void wait_handler();
56
nstrazcde46c82001-03-08 19:13:21 +000057/* char *zoo_active( void ); */
58/* zoo_getname(): create a filename to use for the zoo
59 * returns NULL on error */
60char *zoo_getname(void);
61
62/* zoo_open(): open a zoo file for use
63 * returns NULL on error */
64zoo_t zoo_open(char *zooname);
65
66/* zoo_close(): close an open zoo file */
67int zoo_close(zoo_t z);
68
69/* zoo_mark_cmdline(): make an entry to the zoo
70 * returns 0 on success, -1 on error */
71int zoo_mark_cmdline(zoo_t z, pid_t p, char *tag, char *cmdline);
72
73/* zoo_mark_args(): make an entry to the zoo using argc argv
74 * returns 0 on success, -1 on error */
75int zoo_mark_args(zoo_t z, pid_t p, char *tag, int ac, char **av);
76
77/* zoo_clear(): mark a pid as completed
78 * returns 0 on success, -1 on error, 1 as warning */
79int zoo_clear(zoo_t z, pid_t p);
80
81/* zoo_getpid(): get the pid for a specified tag
82 * returns pid_t on success and 0 on error */
83pid_t zoo_getpid(zoo_t z, char *tag);
84
nstrazf307d5f2000-09-14 21:54:44 +000085
86#endif /* ZOOLIB_H */