blob: 59c083ea1e915ca1c2459331204c09a34e696a3b [file] [log] [blame]
// Copyright 2018 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#pragma once
#include <stdint.h>
//
// Type Declarations.
//
// NDM Control Block
typedef struct ndm* NDM;
typedef const struct ndm* CNDM;
// FTL Interface Structure
typedef struct XfsVol {
// Driver functions
int (*write_pages)(const void* buf, uint32_t page0, int cnt, void* vol);
int (*read_pages)(void* buf, uint32_t page0, int cnt, void* vol);
int (*report)(void* vol, uint32_t msg, ...);
const char* name; // volume name
uint32_t flags; // option flags
uint32_t num_pages; // number of pages in volume
uint32_t page_size; // page size in bytes
void* vol; // driver's volume pointer
void* ftl_volume; // ftl layer (block device) volume
} XfsVol;