LCOV - code coverage report
Current view: top level - include/linux - ctype.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 2 7 28.6 %
Date: 2023-04-06 08:38:28 Functions: 0 0 -

          Line data    Source code
       1             : /* SPDX-License-Identifier: GPL-2.0 */
       2             : #ifndef _LINUX_CTYPE_H
       3             : #define _LINUX_CTYPE_H
       4             : 
       5             : #include <linux/compiler.h>
       6             : 
       7             : /*
       8             :  * NOTE! This ctype does not handle EOF like the standard C
       9             :  * library is required to.
      10             :  */
      11             : 
      12             : #define _U      0x01    /* upper */
      13             : #define _L      0x02    /* lower */
      14             : #define _D      0x04    /* digit */
      15             : #define _C      0x08    /* cntrl */
      16             : #define _P      0x10    /* punct */
      17             : #define _S      0x20    /* white space (space/lf/tab) */
      18             : #define _X      0x40    /* hex digit */
      19             : #define _SP     0x80    /* hard space (0x20) */
      20             : 
      21             : extern const unsigned char _ctype[];
      22             : 
      23             : #define __ismask(x) (_ctype[(int)(unsigned char)(x)])
      24             : 
      25             : #define isalnum(c)      ((__ismask(c)&(_U|_L|_D)) != 0)
      26             : #define isalpha(c)      ((__ismask(c)&(_U|_L)) != 0)
      27             : #define iscntrl(c)      ((__ismask(c)&(_C)) != 0)
      28             : #define isgraph(c)      ((__ismask(c)&(_P|_U|_L|_D)) != 0)
      29             : #define islower(c)      ((__ismask(c)&(_L)) != 0)
      30             : #define isprint(c)      ((__ismask(c)&(_P|_U|_L|_D|_SP)) != 0)
      31             : #define ispunct(c)      ((__ismask(c)&(_P)) != 0)
      32             : /* Note: isspace() must return false for %NUL-terminator */
      33             : #define isspace(c)      ((__ismask(c)&(_S)) != 0)
      34             : #define isupper(c)      ((__ismask(c)&(_U)) != 0)
      35             : #define isxdigit(c)     ((__ismask(c)&(_D|_X)) != 0)
      36             : 
      37             : #define isascii(c) (((unsigned char)(c))<=0x7f)
      38             : #define toascii(c) (((unsigned char)(c))&0x7f)
      39             : 
      40             : #if __has_builtin(__builtin_isdigit)
      41             : #define  isdigit(c) __builtin_isdigit(c)
      42             : #else
      43             : static inline int isdigit(int c)
      44             : {
      45       13913 :         return '0' <= c && c <= '9';
      46             : }
      47             : #endif
      48             : 
      49             : static inline unsigned char __tolower(unsigned char c)
      50             : {
      51           0 :         if (isupper(c))
      52           0 :                 c -= 'A'-'a';
      53             :         return c;
      54             : }
      55             : 
      56             : static inline unsigned char __toupper(unsigned char c)
      57             : {
      58           0 :         if (islower(c))
      59           0 :                 c -= 'a'-'A';
      60             :         return c;
      61             : }
      62             : 
      63             : #define tolower(c) __tolower(c)
      64             : #define toupper(c) __toupper(c)
      65             : 
      66             : /*
      67             :  * Fast implementation of tolower() for internal usage. Do not use in your
      68             :  * code.
      69             :  */
      70             : static inline char _tolower(const char c)
      71             : {
      72       13287 :         return c | 0x20;
      73             : }
      74             : 
      75             : /* Fast check for octal digit */
      76             : static inline int isodigit(const char c)
      77             : {
      78           0 :         return c >= '0' && c <= '7';
      79             : }
      80             : 
      81             : #endif

Generated by: LCOV version 1.14