backed_block.h revision 411619e921904b896eddae81c086c1f687c8304d
128fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross/* 228fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * Copyright (C) 2010 The Android Open Source Project 328fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * 428fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * Licensed under the Apache License, Version 2.0 (the "License"); 528fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * you may not use this file except in compliance with the License. 628fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * You may obtain a copy of the License at 728fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * 828fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * http://www.apache.org/licenses/LICENSE-2.0 928fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * 1028fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * Unless required by applicable law or agreed to in writing, software 1128fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * distributed under the License is distributed on an "AS IS" BASIS, 1228fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1328fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * See the License for the specific language governing permissions and 1428fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross * limitations under the License. 1528fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross */ 1628fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 1728fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#ifndef _BACKED_BLOCK_H_ 1828fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#define _BACKED_BLOCK_H_ 1928fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 20411619e921904b896eddae81c086c1f687c8304dColin Crossstruct backed_block_list; 2128fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 22411619e921904b896eddae81c086c1f687c8304dColin Crosstypedef void (*data_block_callback_t)(void *priv, int64_t off, void *data, 23411619e921904b896eddae81c086c1f687c8304dColin Cross int len); 24411619e921904b896eddae81c086c1f687c8304dColin Crosstypedef void (*data_block_fill_callback_t)(void *priv, int64_t off, 25411619e921904b896eddae81c086c1f687c8304dColin Cross unsigned int fill_val, int len); 2628fa5bc347390480fe190294c6c385b6a9f0d68bColin Crosstypedef void (*data_block_file_callback_t)(void *priv, int64_t off, 27411619e921904b896eddae81c086c1f687c8304dColin Cross const char *file, int64_t offset, int len); 2828fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 29411619e921904b896eddae81c086c1f687c8304dColin Crossvoid for_each_data_block(struct backed_block_list *b, 30411619e921904b896eddae81c086c1f687c8304dColin Cross data_block_callback_t data_func, 3128fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross data_block_file_callback_t file_func, 32411619e921904b896eddae81c086c1f687c8304dColin Cross data_block_fill_callback_t fill_func, 33411619e921904b896eddae81c086c1f687c8304dColin Cross void *priv, unsigned int); 3428fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 35411619e921904b896eddae81c086c1f687c8304dColin Crossvoid queue_data_block(struct backed_block_list *b,void *data, unsigned int len, 3628fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross unsigned int block); 37411619e921904b896eddae81c086c1f687c8304dColin Crossvoid queue_fill_block(struct backed_block_list *b,unsigned int fill_val, 38411619e921904b896eddae81c086c1f687c8304dColin Cross unsigned int len, unsigned int block); 39411619e921904b896eddae81c086c1f687c8304dColin Crossvoid queue_data_file(struct backed_block_list *b,const char *filename, 40411619e921904b896eddae81c086c1f687c8304dColin Cross int64_t offset, unsigned int len, unsigned int block); 4128fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 42411619e921904b896eddae81c086c1f687c8304dColin Crossstruct backed_block_list *backed_block_list_new(void); 43411619e921904b896eddae81c086c1f687c8304dColin Crossvoid backed_block_list_destroy(struct backed_block_list *b); 4428fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 4528fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#endif 46