blob: 4ccf41e4283491c7e13d921b7e1c11ef9abc270e [file] [log] [blame]
Tom Rini897a1d92018-06-19 11:21:44 -04001// SPDX-License-Identifier: MIT
Igor Opaniukd8f9d2a2018-06-03 21:56:36 +03002/*
3 * Copyright (C) 2016 The Android Open Source Project
Igor Opaniukd8f9d2a2018-06-03 21:56:36 +03004 */
5
6#include <stdarg.h>
7#include <stdlib.h>
8
9#include "avb_sysdeps.h"
10
11int avb_memcmp(const void* src1, const void* src2, size_t n) {
12 return memcmp(src1, src2, n);
13}
14
15void* avb_memcpy(void* dest, const void* src, size_t n) {
16 return memcpy(dest, src, n);
17}
18
19void* avb_memset(void* dest, const int c, size_t n) {
20 return memset(dest, c, n);
21}
22
23int avb_strcmp(const char* s1, const char* s2) {
24 return strcmp(s1, s2);
25}
26
Sam Protsenko4d579a42019-08-15 23:04:02 +030027int avb_strncmp(const char* s1, const char* s2, size_t n) {
28 return strncmp(s1, s2, n);
Igor Opaniukd8f9d2a2018-06-03 21:56:36 +030029}
30
Sam Protsenko4d579a42019-08-15 23:04:02 +030031size_t avb_strlen(const char* str) {
32 return strlen(str);
Igor Opaniukd8f9d2a2018-06-03 21:56:36 +030033}
34
35void avb_abort(void) {
36 hang();
37}
38
39void avb_print(const char* message) {
40 printf("%s", message);
41}
42
43void avb_printv(const char* message, ...) {
44 va_list ap;
45 const char* m;
46
47 va_start(ap, message);
48 for (m = message; m != NULL; m = va_arg(ap, const char*)) {
49 printf("%s", m);
50 }
51 va_end(ap);
52}
53
54void* avb_malloc_(size_t size) {
55 return malloc(size);
56}
57
58void avb_free(void* ptr) {
59 free(ptr);
60}
Sam Protsenko4d579a42019-08-15 23:04:02 +030061
62uint32_t avb_div_by_10(uint64_t* dividend) {
63 uint32_t rem = (uint32_t)(*dividend % 10);
64 *dividend /= 10;
65 return rem;
66}