blob: 0bb0cc1498e5a97ab2742d20408f3966f1524800 [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
Simon Glassdb41d652019-12-28 10:45:07 -07006#include <hang.h>
Igor Opaniukd8f9d2a2018-06-03 21:56:36 +03007#include <stdarg.h>
8#include <stdlib.h>
9
10#include "avb_sysdeps.h"
11
12int avb_memcmp(const void* src1, const void* src2, size_t n) {
13 return memcmp(src1, src2, n);
14}
15
16void* avb_memcpy(void* dest, const void* src, size_t n) {
17 return memcpy(dest, src, n);
18}
19
20void* avb_memset(void* dest, const int c, size_t n) {
21 return memset(dest, c, n);
22}
23
24int avb_strcmp(const char* s1, const char* s2) {
25 return strcmp(s1, s2);
26}
27
Sam Protsenko4d579a42019-08-15 23:04:02 +030028int avb_strncmp(const char* s1, const char* s2, size_t n) {
29 return strncmp(s1, s2, n);
Igor Opaniukd8f9d2a2018-06-03 21:56:36 +030030}
31
Sam Protsenko4d579a42019-08-15 23:04:02 +030032size_t avb_strlen(const char* str) {
33 return strlen(str);
Igor Opaniukd8f9d2a2018-06-03 21:56:36 +030034}
35
36void avb_abort(void) {
37 hang();
38}
39
40void avb_print(const char* message) {
41 printf("%s", message);
42}
43
44void avb_printv(const char* message, ...) {
45 va_list ap;
46 const char* m;
47
48 va_start(ap, message);
49 for (m = message; m != NULL; m = va_arg(ap, const char*)) {
50 printf("%s", m);
51 }
52 va_end(ap);
53}
54
55void* avb_malloc_(size_t size) {
56 return malloc(size);
57}
58
59void avb_free(void* ptr) {
60 free(ptr);
61}
Sam Protsenko4d579a42019-08-15 23:04:02 +030062
63uint32_t avb_div_by_10(uint64_t* dividend) {
64 uint32_t rem = (uint32_t)(*dividend % 10);
65 *dividend /= 10;
66 return rem;
67}