(root)/
strace-6.5/
tests-m32/
fill_memory.c
       1  /*
       2   * Copyright (c) 2016-2021 The strace developers.
       3   * All rights reserved.
       4   *
       5   * SPDX-License-Identifier: GPL-2.0-or-later
       6   */
       7  
       8  #include "tests.h"
       9  
      10  void
      11  fill_memory_ex(void *ptr, size_t size, unsigned char start,
      12  	       unsigned int period)
      13  {
      14  	unsigned char *p = ptr;
      15  
      16  	for (typeof(size) i = 0; i < size; ++i) {
      17  		p[i] = start + i % period;
      18  	}
      19  }
      20  
      21  void
      22  fill_memory(void *ptr, size_t size)
      23  {
      24  	fill_memory_ex(ptr, size, 0x80, 0x80);
      25  }
      26  
      27  void
      28  fill_memory16_ex(void *ptr, size_t size, uint16_t start,
      29  	         unsigned int period)
      30  {
      31  	uint16_t *p = ptr;
      32  
      33  	for (typeof(size) i = 0; i < size / sizeof(uint16_t); ++i) {
      34  		p[i] = start + i % period;
      35  	}
      36  }
      37  
      38  void
      39  fill_memory16(void *ptr, size_t size)
      40  {
      41  	fill_memory16_ex(ptr, size, 0x80c0, 0x8000);
      42  }
      43  
      44  void
      45  fill_memory32_ex(void *ptr, size_t size, uint32_t start,
      46  	         unsigned int period)
      47  {
      48  	uint32_t *p = ptr;
      49  
      50  	for (typeof(size) i = 0; i < size / sizeof(uint32_t); ++i) {
      51  		p[i] = start + i % period;
      52  	}
      53  }
      54  
      55  void
      56  fill_memory32(void *ptr, size_t size)
      57  {
      58  	fill_memory32_ex(ptr, size, 0x80a0c0e0, 0x80000000);
      59  }
      60  
      61  void
      62  fill_memory64_ex(void *ptr, size_t size, uint64_t start, uint64_t period)
      63  {
      64  	uint64_t *p = ptr;
      65  
      66  	for (typeof(size) i = 0; i < size / sizeof(uint64_t); i++) {
      67  		p[i] = start + i % period;
      68  	}
      69  }
      70  
      71  void
      72  fill_memory64(void *ptr, size_t size)
      73  {
      74  	fill_memory64_ex(ptr, size,
      75  			 0x8090a0b0c0d0e0f0ULL, 0x8000000000000000ULL);
      76  }