LCOV - code coverage report
Current view: top level - sound/hda - array.c (source / functions) Hit Total Coverage
Test: combined.info Lines: 0 20 0.0 %
Date: 2022-04-01 14:58:12 Functions: 0 2 0.0 %
Branches: 0 8 0.0 %

           Branch data     Line data    Source code
       1                 :            : // SPDX-License-Identifier: GPL-2.0-only
       2                 :            : /*
       3                 :            :  * generic arrays
       4                 :            :  */
       5                 :            : 
       6                 :            : #include <linux/slab.h>
       7                 :            : #include <sound/core.h>
       8                 :            : #include <sound/hdaudio.h>
       9                 :            : 
      10                 :            : /**
      11                 :            :  * snd_array_new - get a new element from the given array
      12                 :            :  * @array: the array object
      13                 :            :  *
      14                 :            :  * Get a new element from the given array.  If it exceeds the
      15                 :            :  * pre-allocated array size, re-allocate the array.
      16                 :            :  *
      17                 :            :  * Returns NULL if allocation failed.
      18                 :            :  */
      19                 :          0 : void *snd_array_new(struct snd_array *array)
      20                 :            : {
      21         [ #  # ]:          0 :         if (snd_BUG_ON(!array->elem_size))
      22                 :            :                 return NULL;
      23         [ #  # ]:          0 :         if (array->used >= array->alloced) {
      24                 :          0 :                 int num = array->alloced + array->alloc_align;
      25                 :          0 :                 int oldsize = array->alloced * array->elem_size;
      26                 :          0 :                 int size = (num + 1) * array->elem_size;
      27                 :          0 :                 void *nlist;
      28         [ #  # ]:          0 :                 if (snd_BUG_ON(num >= 4096))
      29                 :            :                         return NULL;
      30                 :          0 :                 nlist = krealloc(array->list, size, GFP_KERNEL);
      31         [ #  # ]:          0 :                 if (!nlist)
      32                 :            :                         return NULL;
      33                 :          0 :                 memset(nlist + oldsize, 0, size - oldsize);
      34                 :          0 :                 array->list = nlist;
      35                 :          0 :                 array->alloced = num;
      36                 :            :         }
      37                 :          0 :         return snd_array_elem(array, array->used++);
      38                 :            : }
      39                 :            : EXPORT_SYMBOL_GPL(snd_array_new);
      40                 :            : 
      41                 :            : /**
      42                 :            :  * snd_array_free - free the given array elements
      43                 :            :  * @array: the array object
      44                 :            :  */
      45                 :          0 : void snd_array_free(struct snd_array *array)
      46                 :            : {
      47                 :          0 :         kfree(array->list);
      48                 :          0 :         array->used = 0;
      49                 :          0 :         array->alloced = 0;
      50                 :          0 :         array->list = NULL;
      51                 :          0 : }
      52                 :            : EXPORT_SYMBOL_GPL(snd_array_free);

Generated by: LCOV version 1.14