[BACK]Return to ci_pthread.h CVS log [TXT][DIR] Up to [Development] / failsafe / FailSafe / cluster_services / include

File: [Development] / failsafe / FailSafe / cluster_services / include / ci_pthread.h (download)

Revision 1.1, Thu Aug 31 19:16:32 2000 UTC (17 years, 1 month ago) by vasa
Branch: MAIN
CVS Tags: HEAD

Initial checkin

/*
 * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of version 2.1 of the GNU Lesser General Public
 * License as published by the Free Software Foundation.
 * 
 * This program is distributed in the hope that it would be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 * 
 * Further, this software is distributed without any warranty that it is
 * free of the rightful claim of any third person regarding infringement
 * or the like.  Any license provided herein, whether implied or
 * otherwise, applies only to this software file.  Patent licenses, if
 * any, provided herein do not apply to combinations of this program with
 * other software, or any other product whatsoever.
 * 
 * You should have received a copy of the GNU Lesser General Public
 * License along with this program; if not, write the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston MA 02111-1307,
 * USA.
 * 
 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
 * Mountain View, CA 94043, or:
 * 
 * http://www.sgi.com 
 * 
 * For further information regarding this notice, see: 
 * 
 * http://oss.sgi.com/projects/GenInfo/NoticeExplan
 */
#ifndef	CI_PTHREAD_H
#define	CI_PTHREAD_H
#ident "$Id: ci_pthread.h,v 1.1 2000/08/31 19:16:32 vasa Exp $"

/* The thread structure defined below is maintained for each
 * thread currently in the process. The main goal is to able to
 * print logical thread id's and the source file name and line
 * number in log messages. 
 */

typedef struct ci_pthread_info_s {
    pthread_t	thr;		/* The pthread */
    int		id;		/* Logical thread id */
    char	*filename;	/* Used by logging. Stores the filename
				 * for the current log operation issued
				 * by this thread. */
    int		lineno;		/* Used by logging. Stores the lineno
				 * for the current log operation issued
				 * by this thread. */
    int		inuse;		/* Whether this thread entry is in use.
				 * 1 = inuse, 0 = free. */
} ci_pthread_info_t;

/*	prototypes from log/lib/src/ci_pthread.c	*/
int	ci_pthread_self(void);
int	ci_pthread_pthread_to_id(pthread_t);
int	ci_pthread_id_to_pthread(int, pthread_t *);
int	ci_pthread_create(pthread_t *, pthread_attr_t *, 
			  void *(*)(void *), void *);
void	ci_pthread_exit(void *);
int	ci_pthread_set_log_info(char *, int);
int	ci_pthread_reset_log_info(void);
void	ci_pthread_get_log_info(char **, int *);
int	ci_pthread_mlock(pthread_mutex_t *, sigset_t *);
void	ci_pthread_munlock(pthread_mutex_t *, sigset_t *);
int	ci_pthread_mtrylock(pthread_mutex_t *, sigset_t *);

#endif	/* CI_PTHREAD_H */