LCOV - code coverage report
Current view: top level - basic - util.h (source / functions) Hit Total Coverage
Test: systemd_full.info Lines: 22 27 81.5 %
Date: 2019-08-23 13:36:53 Functions: 8 10 80.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 10 20 50.0 %

           Branch data     Line data    Source code
       1                 :            : /* SPDX-License-Identifier: LGPL-2.1+ */
       2                 :            : #pragma once
       3                 :            : 
       4                 :            : #include <stdint.h>
       5                 :            : 
       6                 :            : #include "macro.h"
       7                 :            : 
       8                 :      71016 : static inline const char* yes_no(bool b) {
       9         [ +  + ]:      71016 :         return b ? "yes" : "no";
      10                 :            : }
      11                 :            : 
      12                 :         20 : static inline const char* true_false(bool b) {
      13         [ +  - ]:         20 :         return b ? "true" : "false";
      14                 :            : }
      15                 :            : 
      16                 :          0 : static inline const char* one_zero(bool b) {
      17         [ #  # ]:          0 :         return b ? "1" : "0";
      18                 :            : }
      19                 :            : 
      20                 :          0 : static inline const char* enable_disable(bool b) {
      21         [ #  # ]:          0 :         return b ? "enable" : "disable";
      22                 :            : }
      23                 :            : 
      24                 :            : extern int saved_argc;
      25                 :            : extern char **saved_argv;
      26                 :            : 
      27                 :       1128 : static inline void save_argc_argv(int argc, char **argv) {
      28                 :       1128 :         saved_argc = argc;
      29                 :       1128 :         saved_argv = argv;
      30                 :       1128 : }
      31                 :            : 
      32                 :            : bool kexec_loaded(void);
      33                 :            : 
      34                 :            : int prot_from_flags(int flags) _const_;
      35                 :            : 
      36                 :            : bool in_initrd(void);
      37                 :            : void in_initrd_force(bool value);
      38                 :            : 
      39                 :            : int on_ac_power(void);
      40                 :            : 
      41                 :         28 : static inline unsigned u64log2(uint64_t n) {
      42                 :            : #if __SIZEOF_LONG_LONG__ == 8
      43         [ +  + ]:         28 :         return (n > 1) ? (unsigned) __builtin_clzll(n) ^ 63U : 0;
      44                 :            : #else
      45                 :            : #error "Wut?"
      46                 :            : #endif
      47                 :            : }
      48                 :            : 
      49                 :         44 : static inline unsigned u32ctz(uint32_t n) {
      50                 :            : #if __SIZEOF_INT__ == 4
      51         [ +  - ]:         44 :         return n != 0 ? __builtin_ctz(n) : 32;
      52                 :            : #else
      53                 :            : #error "Wut?"
      54                 :            : #endif
      55                 :            : }
      56                 :            : 
      57                 :         32 : static inline unsigned log2i(int x) {
      58         [ -  + ]:         32 :         assert(x > 0);
      59                 :            : 
      60                 :         32 :         return __SIZEOF_INT__ * 8 - __builtin_clz(x) - 1;
      61                 :            : }
      62                 :            : 
      63                 :      71465 : static inline unsigned log2u(unsigned x) {
      64         [ -  + ]:      71465 :         assert(x > 0);
      65                 :            : 
      66                 :      71465 :         return sizeof(unsigned) * 8 - __builtin_clz(x) - 1;
      67                 :            : }
      68                 :            : 
      69                 :      71465 : static inline unsigned log2u_round_up(unsigned x) {
      70         [ -  + ]:      71465 :         assert(x > 0);
      71                 :            : 
      72         [ -  + ]:      71465 :         if (x == 1)
      73                 :          0 :                 return 0;
      74                 :            : 
      75                 :      71465 :         return log2u(x - 1) + 1;
      76                 :            : }
      77                 :            : 
      78                 :            : int container_get_leader(const char *machine, pid_t *pid);
      79                 :            : 
      80                 :            : int version(void);
      81                 :            : 
      82                 :            : int str_verscmp(const char *s1, const char *s2);
      83                 :            : 
      84                 :            : void disable_coredumps(void);

Generated by: LCOV version 1.14