881 unsigned int buflen = 0;
905 ERR(
"excise_extents returned %08lx\n",
Status);
911 ERR(
"out of memory\n");
915 for (
i = 0;
i < num_parts;
i++) {
916 if (
i == num_parts - 1)
924 ERR(
"add_calc_job_comp returned %08lx\n",
Status);
926 for (
unsigned int j = 0;
j <
i;
j++) {
938 for (
int i = num_parts - 1;
i >= 0;
i--) {
948 ERR(
"calc job returned %08lx\n",
Status);
950 for (
unsigned int i = 0;
i < num_parts;
i++) {
958 for (
unsigned int i = 0;
i < num_parts;
i++) {
959 if (
parts[
i].
cj->space_left >=
fcb->
Vcb->superblock.sector_size) {
968 if ((
parts[
i].outlen & (
fcb->
Vcb->superblock.sector_size - 1)) != 0) {
980 buflen +=
parts[
i].outlen;
998 ERR(
"out of memory\n");
1006 for (
i = 0;
i < num_parts;
i++) {
1020 le =
fcb->
Vcb->chunks.Flink;
1021 while (le != &
fcb->
Vcb->chunks) {
1055 ERR(
"alloc_chunk returned %08lx\n",
Status);
1073 WARN(
"couldn't find any data chunks with %x bytes free\n", buflen);
1086 ERR(
"write_data_complete returned %08lx\n",
Status);
1097 unsigned int sl = buflen >>
fcb->
Vcb->sector_shift;
1101 ERR(
"out of memory\n");
1116 for (
i = 0;
i < num_parts;
i++) {
1123 ERR(
"out of memory\n");
1148 ERR(
"out of memory\n");
1163 ERR(
"add_extent_to_fcb returned %08lx\n",
Status);
1177 extaddr +=
parts[
i].outlen;
1189 for (
i = 0;
i < num_parts;
i++) {
1193 extaddr +=
parts[
i].outlen;
#define STATUS_INSUFFICIENT_RESOURCES
#define BTRFS_COMPRESSION_NONE
static const D3D_BLOB_PART parts[]
#define FSRTL_FLAG2_IS_PAGING_FILE
enum prop_compression_type prop_compression
void add_changed_extent_ref(chunk *c, uint64_t address, uint64_t size, uint64_t root, uint64_t objid, uint64_t offset, uint32_t count, bool no_csum)
#define BTRFS_COMPRESSION_LZO
#define BTRFS_COMPRESSION_ZSTD
NTSTATUS NTAPI KeWaitForSingleObject(IN PVOID Object, IN KWAIT_REASON WaitReason, IN KPROCESSOR_MODE WaitMode, IN BOOLEAN Alertable, IN PLARGE_INTEGER Timeout OPTIONAL)
#define BTRFS_COMPRESSION_ZLIB
#define COMPRESSED_EXTENT_SIZE
_In_ fcb _In_ chunk _In_ uint64_t start_data
BOOLEAN NTAPI ExAcquireResourceExclusiveLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
#define BTRFS_INCOMPAT_FLAGS_COMPRESS_LZO
GLenum GLuint GLenum GLsizei const GLchar * buf
void do_calc_job(device_extension *Vcb, uint8_t *data, uint32_t sectors, void *csum)
#define BTRFS_ENCODING_NONE
#define offsetof(TYPE, MEMBER)
void mark_fcb_dirty(_In_ fcb *fcb)
#define release_chunk_lock(c, Vcb)
NTSTATUS alloc_chunk(device_extension *Vcb, uint64_t flags, chunk **pc, bool full_size) __attribute__((nonnull(1
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
void calc_thread_main(device_extension *Vcb, calc_job *cj)
FSRTL_ADVANCED_FCB_HEADER Header
struct _LIST_ENTRY * Flink
#define BTRFS_ENCRYPTION_NONE
#define NT_SUCCESS(StatCode)
#define BTRFS_INODE_NODATASUM
VOID FASTCALL ExReleaseResourceLite(IN PERESOURCE Resource)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
#define ExAllocatePoolWithTag(hernya, size, tag)
NTSTATUS bool void NTSTATUS add_extent_to_fcb(_In_ fcb *fcb, _In_ uint64_t offset, _In_reads_bytes_(edsize) EXTENT_DATA *ed, _In_ uint16_t edsize, _In_ bool unique, _In_opt_ _When_(return >=0, __drv_aliasesMem) void *csum, _In_ LIST_ENTRY *rollback) __attribute__((nonnull(1
NTSTATUS NTSTATUS NTSTATUS write_data_complete(device_extension *Vcb, uint64_t address, void *data, uint32_t length, PIRP Irp, chunk *c, bool file_write, uint64_t irp_offset, ULONG priority) __attribute__((nonnull(1
#define EXTENT_TYPE_REGULAR
NTSTATUS NTSTATUS NTSTATUS NTSTATUS NTSTATUS excise_extents(device_extension *Vcb, fcb *fcb, uint64_t start_data, uint64_t end_data, PIRP Irp, LIST_ENTRY *rollback) __attribute__((nonnull(1
void space_list_subtract(chunk *c, uint64_t address, uint64_t length, LIST_ENTRY *rollback)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define acquire_chunk_lock(c, Vcb)
_In_ fcb _In_ chunk _In_ uint64_t _In_ uint64_t _In_ bool _In_opt_ void _In_opt_ PIRP _In_ LIST_ENTRY * rollback
BOOLEAN NTAPI ExAcquireResourceSharedLite(IN PERESOURCE Resource, IN BOOLEAN Wait)
#define RtlZeroMemory(Destination, Length)
#define RtlCopyMemory(Destination, Source, Length)
GLuint GLuint GLsizei GLenum type
#define BTRFS_INODE_NOCOMPRESS
#define BTRFS_INCOMPAT_FLAGS_COMPRESS_ZSTD
NTSTATUS add_calc_job_comp(device_extension *Vcb, uint8_t compression, void *in, unsigned int inlen, void *out, unsigned int outlen, calc_job **pcj)
struct _device_extension * Vcb
NTSTATUS bool find_data_address_in_chunk(device_extension *Vcb, chunk *c, uint64_t length, uint64_t *address) __attribute__((nonnull(1
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *