diff options
author | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2021-02-16 21:50:26 +0100 |
---|---|---|
committer | Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org> | 2021-02-28 17:28:38 +0100 |
commit | e1de9ed1759feb87bc633253b4b1666273dfa8d2 (patch) | |
tree | d13aac1fc1c3a36a5920a8996bdcc14ede2e2807 /samsung-ipc/partitions/toc/toc.c | |
parent | 0149fc9e6bfd08b596fa1954b6dc4bcf875de9cd (diff) | |
download | hardware_replicant_libsamsung-ipc-e1de9ed1759feb87bc633253b4b1666273dfa8d2.tar.gz hardware_replicant_libsamsung-ipc-e1de9ed1759feb87bc633253b4b1666273dfa8d2.tar.bz2 hardware_replicant_libsamsung-ipc-e1de9ed1759feb87bc633253b4b1666273dfa8d2.zip |
samsung-ipc: move TOC handling in its own directory
This could enable other devices to use the TOC handling functions.
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Diffstat (limited to 'samsung-ipc/partitions/toc/toc.c')
-rw-r--r-- | samsung-ipc/partitions/toc/toc.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/samsung-ipc/partitions/toc/toc.c b/samsung-ipc/partitions/toc/toc.c new file mode 100644 index 0000000..ec62ea9 --- /dev/null +++ b/samsung-ipc/partitions/toc/toc.c @@ -0,0 +1,44 @@ +/* + * This file is part of libsamsung-ipc. + * + * Copyright (C) 2020 Tony Garnock-Jones <tonyg@leastfixedpoint.com> + * + * libsamsung-ipc is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * libsamsung-ipc is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with libsamsung-ipc. If not, see <http://www.gnu.org/licenses/>. + */ + +#include <stddef.h> +#include <string.h> + +#include "toc.h" + +struct firmware_toc_entry const *find_toc_entry( + char const *name, + struct firmware_toc_entry const *toc) +{ + unsigned int index; + + /* We don't know all the details of the TOC format yet; for now, we + * assume two things: + * 1. reading 512 bytes of TOC is enough, and + * 2. the first entry with an empty name field ends the list. + */ + for (index = 0; index < N_TOC_ENTRIES; index++) { + if (toc[index].name[0] == '\0') + break; + if (strncmp(toc[index].name, name, + sizeof(toc[index].name)) == 0) + return &toc[index]; + } + return NULL; +} |