1*cd60bc56SAndroid Build Coastguard Worker /*
2*cd60bc56SAndroid Build Coastguard Worker * Copyright (c) 2018, Intel Corporation
3*cd60bc56SAndroid Build Coastguard Worker * All rights reserved.
4*cd60bc56SAndroid Build Coastguard Worker *
5*cd60bc56SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without
6*cd60bc56SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions
7*cd60bc56SAndroid Build Coastguard Worker * are met:
8*cd60bc56SAndroid Build Coastguard Worker *
9*cd60bc56SAndroid Build Coastguard Worker * * Redistributions of source code must retain the above copyright
10*cd60bc56SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer.
11*cd60bc56SAndroid Build Coastguard Worker * * Redistributions in binary form must reproduce the above copyright
12*cd60bc56SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer
13*cd60bc56SAndroid Build Coastguard Worker * in the documentation and/or other materials provided with the
14*cd60bc56SAndroid Build Coastguard Worker * distribution.
15*cd60bc56SAndroid Build Coastguard Worker *
16*cd60bc56SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17*cd60bc56SAndroid Build Coastguard Worker * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18*cd60bc56SAndroid Build Coastguard Worker * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
19*cd60bc56SAndroid Build Coastguard Worker * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
20*cd60bc56SAndroid Build Coastguard Worker * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
21*cd60bc56SAndroid Build Coastguard Worker * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22*cd60bc56SAndroid Build Coastguard Worker * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23*cd60bc56SAndroid Build Coastguard Worker * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24*cd60bc56SAndroid Build Coastguard Worker * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
25*cd60bc56SAndroid Build Coastguard Worker * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
26*cd60bc56SAndroid Build Coastguard Worker * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
27*cd60bc56SAndroid Build Coastguard Worker * OF THE POSSIBILITY OF SUCH DAMAGE.
28*cd60bc56SAndroid Build Coastguard Worker *
29*cd60bc56SAndroid Build Coastguard Worker */
30*cd60bc56SAndroid Build Coastguard Worker
31*cd60bc56SAndroid Build Coastguard Worker #include "libacpi.h"
32*cd60bc56SAndroid Build Coastguard Worker
acpi_csum(const void * base,int n)33*cd60bc56SAndroid Build Coastguard Worker uint8_t acpi_csum(const void *base, int n) {
34*cd60bc56SAndroid Build Coastguard Worker const uint8_t *p = base;
35*cd60bc56SAndroid Build Coastguard Worker uint8_t sum = 0;
36*cd60bc56SAndroid Build Coastguard Worker int bytesDone;
37*cd60bc56SAndroid Build Coastguard Worker
38*cd60bc56SAndroid Build Coastguard Worker for (bytesDone = 0; bytesDone < n; bytesDone++) {
39*cd60bc56SAndroid Build Coastguard Worker sum += *p;
40*cd60bc56SAndroid Build Coastguard Worker p++;
41*cd60bc56SAndroid Build Coastguard Worker }
42*cd60bc56SAndroid Build Coastguard Worker
43*cd60bc56SAndroid Build Coastguard Worker return sum;
44*cd60bc56SAndroid Build Coastguard Worker }
45*cd60bc56SAndroid Build Coastguard Worker
46