Subversion Repositories shark

Rev

Rev 3 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
 * Project: S.Ha.R.K.
 *
 * Coordinators:
 *   Giorgio Buttazzo    <giorgio@sssup.it>
 *   Paolo Gai           <pj@gandalf.sssup.it>
 *
 * Authors     :
 *   Paolo Gai           <pj@gandalf.sssup.it>
 *   Massimiliano Giorgi <massy@gandalf.sssup.it>
 *   Luca Abeni          <luca@gandalf.sssup.it>
 *   (see the web pages for full authors list)
 *
 * ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
 *
 * http://www.sssup.it
 * http://retis.sssup.it
 * http://shark.sssup.it
 */


/**
 ------------
 CVS :        $Id: sysconf.c,v 1.1.1.1 2002-03-29 14:12:53 pj Exp $

 File:        $File$
 Revision:    $Revision: 1.1.1.1 $
 Last update: $Date: 2002-03-29 14:12:53 $
 ------------


**/


/*
 * Copyright (C) 2000 Paolo Gai
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 *
 */



#include <errno.h>
#include <limits.h>
#include <time.h>
#include <unistd.h>

long sysconf(int name)
{
  switch (name) {
    case _SC_AIO_LISTIO_MAX               : return AIO_LISTIO_MAX;
    case _SC_AIO_MAX                      : return AIO_MAX;
    case _SC_AIO_PRIO_DELTA_MAX           : return AIO_PRIO_DELTA_MAX;
    case _SC_ARG_MAX                      : return ARG_MAX;
    case _SC_CHILD_MAX                    : return -1; // !!!
    case _SC_CLK_TICK                     : return CLK_TCK;
    case _SC_DELAYTIMER_MAX               : return DELAYTIMER_MAX;
    case _SC_GETGR_R_SIZE_MAX             : return -1; // !!!
    case _SC_GETPW_R_SIZE_MAX             : return -1; // !!!
    case _SC_LOGIN_NAME_MAX               : return LOGIN_NAME_MAX;
    case _SC_MQ_OPEN_MAX                  : return MQ_OPEN_MAX;
    case _SC_MQ_PRIO_MAX                  : return MQ_PRIO_MAX;
    case _SC_NGROUPS_MAX                  : return NGROUPS_MAX;
    case _SC_OPEN_MAX                     : return OPEN_MAX;
    case _SC_PAGESIZE                     : return PAGESIZE;
    case _SC_RTSIG_MAX                    : return RTSIG_MAX;
    case _SC_SEM_NSEMS_MAX                : return SEM_NSEMS_MAX;
    case _SC_SEM_VALUE_MAX                : return SEM_VALUE_MAX;
    case _SC_SIGQUEUE_MAX                 : return SIGQUEUE_MAX;
    case _SC_STREAM_MAX                   : return STREAM_MAX;
    case _SC_THREAD_DESTRUCTOR_ITERATIONS : return PTHREAD_DESTRUCTOR_ITERATIONS;
    case _SC_THREAD_KEYS_MAX              : return PTHREAD_KEYS_MAX;
    case _SC_THREAD_STACK_MIN             : return PTHREAD_STACK_MIN;
    case _SC_THREAD_THREADS_MAX           : return PTHREAD_THREADS_MAX;
    case _SC_TIMER_MAX                    : return TIMER_MAX;
    case _SC_TTY_NAME_MAX                 : return TTY_NAME_MAX;
    case _SC_TZNAME_MAX                   : return TZNAME_MAX;

    case _SC_ASYNCHRONOUS_IO              : return -1;
    case _SC_FSYNC                        : return -1;
    case _SC_JOB_CONTROL                  : return -1;
    case _SC_MAPPED_FILES                 : return -1;
    case _SC_MEMLOCK                      : return -1;
    case _SC_MEMLOCK_RANGE                : return -1;
    case _SC_MEMORY_PROTECTION            : return -1;
    case _SC_MESSAGE_PASSING              : return 0;
    case _SC_PRIORITIZED_IO               : return -1;
    case _SC_PRIORITY_SCHEDULING          : return -1;
    case _SC_REALTIME_SIGNALS             : return 0;
    case _SC_SAVED_IDS                    : return -1;
    case _SC_SEMAPHORES                   : return 0;
    case _SC_SHARED_MEMORY_OBJECTS        : return -1;
    case _SC_SYNCHRONIZED_IO              : return -1;
    case _SC_TIMERS                       : return 0;
    case _SC_THREADS                      : return 0;
    case _SC_THREAD_ATTR_STACKADDR        : return 0;
    case _SC_THREAD_ATTR_STACKSIZE        : return 0;
    case _SC_THREAD_PRIORITY_SCHEDULING   : return 0;
    case _SC_THREAD_PRIO_INHERIT          : return 0;
    case _SC_THREAD_PRIO_PROTECT          : return 0;
    case _SC_THREAD_PROCESS_SHARED        : return -1;
    case _SC_THREAD_SAFE_FUNCTIONS        : return -1;
    case _SC_VERSION                      : return _POSIX_VERSION;

    default                               : errno = EINVAL; return -1;
  }
}