(root)/
coreutils-9.4/
lib/
sched.in.h
       1  /* A GNU-like <sched.h>.
       2     Copyright (C) 2008-2023 Free Software Foundation, Inc.
       3  
       4     This file is free software: you can redistribute it and/or modify
       5     it under the terms of the GNU Lesser General Public License as
       6     published by the Free Software Foundation; either version 2.1 of the
       7     License, or (at your option) any later version.
       8  
       9     This file is distributed in the hope that it will be useful,
      10     but WITHOUT ANY WARRANTY; without even the implied warranty of
      11     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      12     GNU Lesser General Public License for more details.
      13  
      14     You should have received a copy of the GNU Lesser General Public License
      15     along with this program.  If not, see <https://www.gnu.org/licenses/>.  */
      16  
      17  #ifndef _@GUARD_PREFIX@_SCHED_H
      18  
      19  #if __GNUC__ >= 3
      20  @PRAGMA_SYSTEM_HEADER@
      21  #endif
      22  @PRAGMA_COLUMNS@
      23  
      24  /* This file uses #include_next of a system file that defines time_t.
      25     For the 'year2038' module to work right, <config.h> needs to have been
      26     included before.  */
      27  #if !_GL_CONFIG_H_INCLUDED
      28   #error "Please include config.h first."
      29  #endif
      30  
      31  /* The include_next requires a split double-inclusion guard.  */
      32  #if @HAVE_SCHED_H@
      33  # if @HAVE_SYS_CDEFS_H@
      34  #  include <sys/cdefs.h>
      35  # endif
      36  # @INCLUDE_NEXT@ @NEXT_SCHED_H@
      37  #endif
      38  
      39  #ifndef _@GUARD_PREFIX@_SCHED_H
      40  #define _@GUARD_PREFIX@_SCHED_H
      41  
      42  /* This file uses GNULIB_POSIXCHECK, HAVE_RAW_DECL_*.  */
      43  #if !_GL_CONFIG_H_INCLUDED
      44   #error "Please include config.h first."
      45  #endif
      46  
      47  /* Get pid_t.
      48     This is needed on glibc 2.11 (see
      49     glibc bug <https://sourceware.org/bugzilla/show_bug.cgi?id=13198>)
      50     and Mac OS X 10.5.  */
      51  #include <sys/types.h>
      52  
      53  #ifdef __KLIBC__
      54  /* On OS/2 kLIBC, struct sched_param is in spawn.h.  */
      55  # include <spawn.h>
      56  #endif
      57  
      58  #ifdef __VMS
      59  /* On OpenVMS, struct sched_param is in <pthread.h>.  */
      60  # include <pthread.h>
      61  #endif
      62  
      63  /* The definitions of _GL_FUNCDECL_RPL etc. are copied here.  */
      64  
      65  /* The definition of _GL_WARN_ON_USE is copied here.  */
      66  
      67  #if !@HAVE_STRUCT_SCHED_PARAM@
      68  
      69  # if !GNULIB_defined_struct_sched_param
      70  struct sched_param
      71  {
      72    int sched_priority;
      73  };
      74  #  define GNULIB_defined_struct_sched_param 1
      75  # endif
      76  
      77  #endif
      78  
      79  #if !(defined SCHED_FIFO && defined SCHED_RR && defined SCHED_OTHER)
      80  # define SCHED_FIFO   1
      81  # define SCHED_RR     2
      82  # define SCHED_OTHER  0
      83  #endif
      84  
      85  #if @GNULIB_SCHED_YIELD@
      86  # if @REPLACE_SCHED_YIELD@
      87  #  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
      88  #   undef sched_yield
      89  #   define sched_yield rpl_sched_yield
      90  #  endif
      91  _GL_FUNCDECL_RPL (sched_yield, int, (void));
      92  _GL_CXXALIAS_RPL (sched_yield, int, (void));
      93  # else
      94  #  if !@HAVE_SCHED_YIELD@
      95  _GL_FUNCDECL_SYS (sched_yield, int, (void));
      96  #  endif
      97  _GL_CXXALIAS_SYS (sched_yield, int, (void));
      98  # endif
      99  # if __GLIBC__ >= 2
     100  _GL_CXXALIASWARN (sched_yield);
     101  # endif
     102  #elif defined GNULIB_POSIXCHECK
     103  # undef sched_yield
     104  # if HAVE_RAW_DECL_SCHED_YIELD
     105  _GL_WARN_ON_USE (sched_yield, "sched_yield is not portable - "
     106                   "use gnulib module sched_yield for portability");
     107  # endif
     108  #endif
     109  
     110  #endif /* _@GUARD_PREFIX@_SCHED_H */
     111  #endif /* _@GUARD_PREFIX@_SCHED_H */