From ff05b0085a231b64d4128517eeb93aaf248a9736 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Sun, 18 Feb 2018 03:08:24 +0100 Subject: Add thread_attr_compare helper function * sysdeps/generic/timer_routines.h: New file. --- sysdeps/generic/timer_routines.h | 47 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 sysdeps/generic/timer_routines.h (limited to 'sysdeps/generic') diff --git a/sysdeps/generic/timer_routines.h b/sysdeps/generic/timer_routines.h new file mode 100644 index 0000000..c69d7c1 --- /dev/null +++ b/sysdeps/generic/timer_routines.h @@ -0,0 +1,47 @@ +/* Helper code for POSIX timer implementation on Hurd. + Copyright (C) 2000-2018 Free Software Foundation, Inc. + This file is part of the GNU C Library. + Contributed by Kaz Kylheku . + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; see the file COPYING.LIB. If + not, see . */ + +#ifndef _TIMER_ROUTINES_H +#define _TIMER_ROUTINES_H 1 + +#include + +/* Compare two pthread_attr_t thread attributes for exact equality. + Returns 1 if they are equal, otherwise zero if they are not equal + or contain illegal values. This version is Hurd-specific for + performance reason. One could use the access functions to get the + values of all the fields of the attribute structure. */ +static inline int +thread_attr_compare (const pthread_attr_t *left, const pthread_attr_t *right) +{ + struct __pthread_attr *ileft = (struct __pthread_attr *) left; + struct __pthread_attr *iright = (struct __pthread_attr *) right; + + return (ileft->__schedparam.__sched_priority + == iright->__schedparam.__sched_priority + && ileft->__stackaddr == iright->__stackaddr + && ileft->__stacksize == iright->__stacksize + && ileft->__guardsize == iright->__guardsize + && ileft->__detachstate == iright->__detachstate + && ileft->__inheritsched == iright->__inheritsched + && ileft->__contentionscope == iright->__contentionscope + && ileft->__schedpolicy == iright->__schedpolicy); +} + +#endif /* timer_routines.h */ -- cgit v1.2.3