backed_block.h revision b55dceea986ab24f8b836b5116b389ed619c816e
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 20b55dceea986ab24f8b836b5116b389ed619c816eColin Cross#include <stdint.h> 21b55dceea986ab24f8b836b5116b389ed619c816eColin Cross 22411619e921904b896eddae81c086c1f687c8304dColin Crossstruct backed_block_list; 23b55dceea986ab24f8b836b5116b389ed619c816eColin Crossstruct backed_block; 24b55dceea986ab24f8b836b5116b389ed619c816eColin Cross 25b55dceea986ab24f8b836b5116b389ed619c816eColin Crossenum backed_block_type { 26b55dceea986ab24f8b836b5116b389ed619c816eColin Cross BACKED_BLOCK_DATA, 27b55dceea986ab24f8b836b5116b389ed619c816eColin Cross BACKED_BLOCK_FILE, 28b55dceea986ab24f8b836b5116b389ed619c816eColin Cross BACKED_BLOCK_FILL, 29b55dceea986ab24f8b836b5116b389ed619c816eColin Cross}; 3028fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 31b55dceea986ab24f8b836b5116b389ed619c816eColin Crossint backed_block_add_data(struct backed_block_list *bbl, void *data, 32b55dceea986ab24f8b836b5116b389ed619c816eColin Cross unsigned int len, unsigned int block); 33b55dceea986ab24f8b836b5116b389ed619c816eColin Crossint backed_block_add_fill(struct backed_block_list *bbl, unsigned int fill_val, 34411619e921904b896eddae81c086c1f687c8304dColin Cross unsigned int len, unsigned int block); 35b55dceea986ab24f8b836b5116b389ed619c816eColin Crossint backed_block_add_file(struct backed_block_list *bbl, const char *filename, 36411619e921904b896eddae81c086c1f687c8304dColin Cross int64_t offset, unsigned int len, unsigned int block); 3728fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 38b55dceea986ab24f8b836b5116b389ed619c816eColin Crossstruct backed_block *backed_block_iter_new(struct backed_block_list *bbl); 39b55dceea986ab24f8b836b5116b389ed619c816eColin Crossstruct backed_block *backed_block_iter_next(struct backed_block *bb); 40b55dceea986ab24f8b836b5116b389ed619c816eColin Crossunsigned int backed_block_len(struct backed_block *bb); 41b55dceea986ab24f8b836b5116b389ed619c816eColin Crossunsigned int backed_block_block(struct backed_block *bb); 42b55dceea986ab24f8b836b5116b389ed619c816eColin Crossvoid *backed_block_data(struct backed_block *bb); 43b55dceea986ab24f8b836b5116b389ed619c816eColin Crossconst char *backed_block_filename(struct backed_block *bb); 44b55dceea986ab24f8b836b5116b389ed619c816eColin Crossint64_t backed_block_file_offset(struct backed_block *bb); 45b55dceea986ab24f8b836b5116b389ed619c816eColin Crossuint32_t backed_block_fill_val(struct backed_block *bb); 46b55dceea986ab24f8b836b5116b389ed619c816eColin Crossenum backed_block_type backed_block_type(struct backed_block *bb); 47b55dceea986ab24f8b836b5116b389ed619c816eColin Cross 48b55dceea986ab24f8b836b5116b389ed619c816eColin Crossstruct backed_block *backed_block_iter_new(struct backed_block_list *bbl); 49b55dceea986ab24f8b836b5116b389ed619c816eColin Crossstruct backed_block *backed_block_iter_next(struct backed_block *bb); 50b55dceea986ab24f8b836b5116b389ed619c816eColin Cross 51411619e921904b896eddae81c086c1f687c8304dColin Crossstruct backed_block_list *backed_block_list_new(void); 52b55dceea986ab24f8b836b5116b389ed619c816eColin Crossvoid backed_block_list_destroy(struct backed_block_list *bbl); 5328fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross 5428fa5bc347390480fe190294c6c385b6a9f0d68bColin Cross#endif 55