LTP GCOV extension - code coverage report
Current view: directory - lib/roken - getdtablesize.c
Test: samba_4_0_test.lcov.info
Date: 2010-08-06 Instrumented lines: 5
Code covered: 0.0 % Executed lines: 0

       1                 : /*
       2                 :  * Copyright (c) 1995-2001 Kungliga Tekniska Högskolan
       3                 :  * (Royal Institute of Technology, Stockholm, Sweden).
       4                 :  * All rights reserved.
       5                 :  *
       6                 :  * Redistribution and use in source and binary forms, with or without
       7                 :  * modification, are permitted provided that the following conditions
       8                 :  * are met:
       9                 :  *
      10                 :  * 1. Redistributions of source code must retain the above copyright
      11                 :  *    notice, this list of conditions and the following disclaimer.
      12                 :  *
      13                 :  * 2. Redistributions in binary form must reproduce the above copyright
      14                 :  *    notice, this list of conditions and the following disclaimer in the
      15                 :  *    documentation and/or other materials provided with the distribution.
      16                 :  *
      17                 :  * 3. Neither the name of the Institute nor the names of its contributors
      18                 :  *    may be used to endorse or promote products derived from this software
      19                 :  *    without specific prior written permission.
      20                 :  *
      21                 :  * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
      22                 :  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
      23                 :  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
      24                 :  * ARE DISCLAIMED.  IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
      25                 :  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
      26                 :  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
      27                 :  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
      28                 :  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
      29                 :  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
      30                 :  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
      31                 :  * SUCH DAMAGE.
      32                 :  */
      33                 : 
      34                 : #include <config.h>
      35                 : 
      36                 : #include "roken.h"
      37                 : 
      38                 : #ifdef HAVE_SYS_TYPES_H
      39                 : #include <sys/types.h>
      40                 : #endif
      41                 : #ifdef TIME_WITH_SYS_TIME
      42                 : #include <sys/time.h>
      43                 : #include <time.h>
      44                 : #elif defined(HAVE_SYS_TIME_H)
      45                 : #include <sys/time.h>
      46                 : #else
      47                 : #include <time.h>
      48                 : #endif
      49                 : #ifdef HAVE_SYS_PARAM_H
      50                 : #include <sys/param.h>
      51                 : #endif
      52                 : #ifdef HAVE_UNISTD_H
      53                 : #include <unistd.h>
      54                 : #endif
      55                 : 
      56                 : #ifdef HAVE_SYS_RESOURCE_H
      57                 : #include <sys/resource.h>
      58                 : #endif
      59                 : 
      60                 : #ifdef HAVE_SYS_SYSCTL_H
      61                 : #include <sys/sysctl.h>
      62                 : #endif
      63                 : 
      64                 : ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL
      65                 : getdtablesize(void)
      66               0 : {
      67               0 :   int files = -1;
      68                 : #if defined(HAVE_SYSCONF) && defined(_SC_OPEN_MAX)
      69                 :   files = sysconf(_SC_OPEN_MAX);
      70                 : #else /* !defined(HAVE_SYSCONF) */
      71                 : #if defined(HAVE_GETRLIMIT) && defined(RLIMIT_NOFILE)
      72                 :   struct rlimit res;
      73                 :   if (getrlimit(RLIMIT_NOFILE, &res) == 0)
      74                 :     files = res.rlim_cur;
      75                 : #else /* !definded(HAVE_GETRLIMIT) */
      76                 : #if defined(HAVE_SYSCTL) && defined(CTL_KERN) && defined(KERN_MAXFILES)
      77                 :   int mib[2];
      78                 :   size_t len;
      79                 : 
      80                 :   mib[0] = CTL_KERN;
      81                 :   mib[1] = KERN_MAXFILES;
      82                 :   len = sizeof(files);
      83                 :   sysctl(&mib, 2, &files, sizeof(files), NULL, 0);
      84                 : #endif /* defined(HAVE_SYSCTL) */
      85                 : #endif /* !definded(HAVE_GETRLIMIT) */
      86                 : #endif /* !defined(HAVE_SYSCONF) */
      87                 : 
      88                 : #ifdef OPEN_MAX
      89                 :   if (files < 0)
      90                 :     files = OPEN_MAX;
      91                 : #endif
      92                 : 
      93                 : #ifdef NOFILE
      94               0 :   if (files < 0)
      95               0 :     files = NOFILE;
      96                 : #endif
      97                 : 
      98               0 :   return files;
      99                 : }

Generated by: LTP GCOV extension version 1.6