File: compress.h

package info (click to toggle)
apfsprogs 0%2Bgit20230206%2Bds-1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 1,036 kB
  • sloc: ansic: 14,691; makefile: 123
file content (37 lines) | stat: -rw-r--r-- 1,015 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#ifndef _COMPRESS_H
#define _COMPRESS_H

#include <apfs/types.h>

struct apfs_compress_file_data {
	struct apfs_compress_hdr hdr;
	loff_t size;
	void *data;
	u8 *buf;
	ssize_t bufblk;
	size_t bufsize;
};

struct compress {
	void *decmpfs;		/* Copy of the inline data */
	int decmpfs_len;	/* Length of the inline data */

	u64	size;		/* Size of the compressed data */
	u64	block_num;	/* Reported count of compressed blocks */
	u32	data_offs;
	u32	data_size;

	/* Data stream for the resource fork (NULL if none) */
	struct dstream *rsrc_dstream;

	/* Internal data for the decompression code */
	struct apfs_compress_file_data *compress_data;
};

extern void apfs_compress_open(struct compress *compress);
extern void apfs_compress_check(struct compress *compress);
extern ssize_t apfs_compress_read(struct compress *compress, char *buf, size_t size, loff_t *off);
extern void apfs_compress_close(struct compress *compress);
extern void read_whole_dstream(u64 oid, void *buf, loff_t size);

#endif	/* _COMPRESS_H */