backed_block.h revision 411619e921904b896eddae81c086c1f687c8304d
1/* 2 * Copyright (C) 2010 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17#ifndef _BACKED_BLOCK_H_ 18#define _BACKED_BLOCK_H_ 19 20struct backed_block_list; 21 22typedef void (*data_block_callback_t)(void *priv, int64_t off, void *data, 23 int len); 24typedef void (*data_block_fill_callback_t)(void *priv, int64_t off, 25 unsigned int fill_val, int len); 26typedef void (*data_block_file_callback_t)(void *priv, int64_t off, 27 const char *file, int64_t offset, int len); 28 29void for_each_data_block(struct backed_block_list *b, 30 data_block_callback_t data_func, 31 data_block_file_callback_t file_func, 32 data_block_fill_callback_t fill_func, 33 void *priv, unsigned int); 34 35void queue_data_block(struct backed_block_list *b,void *data, unsigned int len, 36 unsigned int block); 37void queue_fill_block(struct backed_block_list *b,unsigned int fill_val, 38 unsigned int len, unsigned int block); 39void queue_data_file(struct backed_block_list *b,const char *filename, 40 int64_t offset, unsigned int len, unsigned int block); 41 42struct backed_block_list *backed_block_list_new(void); 43void backed_block_list_destroy(struct backed_block_list *b); 44 45#endif 46