| /* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ |
| |
| #ifndef __LIBBPF_ZIP_H |
| #define __LIBBPF_ZIP_H |
| |
| #include <linux/types.h> |
| |
| /* Represents an open zip archive. |
| * Only basic ZIP files are supported, in particular the following are not |
| * supported: |
| * - encryption |
| * - streaming |
| * - multi-part ZIP files |
| * - ZIP64 |
| */ |
| struct zip_archive; |
| |
| /* Carries information on name, compression method, and data corresponding to a |
| * file in a zip archive. |
| */ |
| struct zip_entry { |
| /* Compression method as defined in pkzip spec. 0 means data is uncompressed. */ |
| __u16 compression; |
| |
| /* Non-null terminated name of the file. */ |
| const char *name; |
| /* Length of the file name. */ |
| __u16 name_length; |
| |
| /* Pointer to the file data. */ |
| const void *data; |
| /* Length of the file data. */ |
| __u32 data_length; |
| /* Offset of the file data within the archive. */ |
| __u32 data_offset; |
| }; |
| |
| /* Open a zip archive. Returns NULL in case of an error. */ |
| struct zip_archive *zip_archive_open(const char *path); |
| |
| /* Close a zip archive and release resources. */ |
| void zip_archive_close(struct zip_archive *archive); |
| |
| /* Look up an entry corresponding to a file in given zip archive. */ |
| int zip_archive_find_entry(struct zip_archive *archive, const char *name, struct zip_entry *out); |
| |
| #endif |