xref: /aosp_15_r20/external/dtc/libfdt/acpi.c (revision cd60bc56d4bea3af4ec04523e4d71c2b272c8aff)
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