A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita
audio
rust
zig
deno
mpris
rockbox
mpd
1/***************************************************************************
2 * __________ __ ___.
3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___
4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
7 * \/ \/ \/ \/ \/
8 * $Id$
9 *
10 * Copyright (C) 2020 James Buren
11 *
12 * This program is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU General Public License
14 * as published by the Free Software Foundation; either version 2
15 * of the License, or (at your option) any later version.
16 *
17 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
18 * KIND, either express or implied.
19 *
20 ****************************************************************************/
21#include <stdint.h>
22#include <stdbool.h>
23
24#ifndef _CHECKSUM_H
25#define _CHECKSUM_H
26
27/* rockbox firmware checksum algorithm */
28static inline uint32_t calc_checksum(uint32_t sum, const uint8_t* buf, size_t len)
29{
30 for (size_t i = 0; i < len; i++)
31 sum += buf[i];
32 return sum;
33}
34
35/* similar to above but only used for verification */
36static inline bool verify_checksum(uint32_t cs, const uint8_t* buf, size_t len)
37{
38 return (calc_checksum(MODEL_NUMBER, buf, len) == cs);
39}
40
41#endif