common.h revision 28ce47cfa6919518a8c298088bf08b03bb374c0f
1c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project/* 2c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * Copyright (C) 2007 The Android Open Source Project 3c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * 4c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * you may not use this file except in compliance with the License. 6c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * You may obtain a copy of the License at 7c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * 8c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * 10c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * See the License for the specific language governing permissions and 14c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project * limitations under the License. 15c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project */ 16c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project 17c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project#ifndef RECOVERY_COMMON_H 18c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project#define RECOVERY_COMMON_H 19c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project 20c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project#include <stdio.h> 21c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project 2228ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker#ifdef __cplusplus 2328ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongkerextern "C" { 2428ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker#endif 2528ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker 2628ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker// TODO: restore ui_print for LOGE 2728ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker#define LOGE(...) fprintf(stdout, "E:" __VA_ARGS__) 283d177d055c9cf3571e4b7c098818b454d1dbf9d7Doug Zongker#define LOGW(...) fprintf(stdout, "W:" __VA_ARGS__) 293d177d055c9cf3571e4b7c098818b454d1dbf9d7Doug Zongker#define LOGI(...) fprintf(stdout, "I:" __VA_ARGS__) 30c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project 31c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project#if 0 323d177d055c9cf3571e4b7c098818b454d1dbf9d7Doug Zongker#define LOGV(...) fprintf(stdout, "V:" __VA_ARGS__) 333d177d055c9cf3571e4b7c098818b454d1dbf9d7Doug Zongker#define LOGD(...) fprintf(stdout, "D:" __VA_ARGS__) 34c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project#else 35c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project#define LOGV(...) do {} while (0) 36c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project#define LOGD(...) do {} while (0) 37c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project#endif 38c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project 39fb2e3af3f915c0e3f2b4b027ef26777267ad46dcDoug Zongker#define STRINGIFY(x) #x 40fb2e3af3f915c0e3f2b4b027ef26777267ad46dcDoug Zongker#define EXPAND(x) STRINGIFY(x) 41fb2e3af3f915c0e3f2b4b027ef26777267ad46dcDoug Zongker 42cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongkertypedef struct { 43cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker const char* mount_point; // eg. "/cache". must live in the root directory. 44cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker 45cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker const char* fs_type; // "yaffs2" or "ext4" or "vfat" 46cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker 47cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker const char* device; // MTD partition name if fs_type == "yaffs" 48cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker // block device if fs_type == "ext4" or "vfat" 49cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker 50cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker const char* device2; // alternative device to try if fs_type 51cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker // == "ext4" or "vfat" and mounting 52cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker // 'device' fails 532810ceda34604f605f781691689c0559e03cb357Doug Zongker 542810ceda34604f605f781691689c0559e03cb357Doug Zongker long long length; // (ext4 partition only) when 552810ceda34604f605f781691689c0559e03cb357Doug Zongker // formatting, size to use for the 562810ceda34604f605f781691689c0559e03cb357Doug Zongker // partition. 0 or negative number 572810ceda34604f605f781691689c0559e03cb357Doug Zongker // means to format all but the last 582810ceda34604f605f781691689c0559e03cb357Doug Zongker // (that much). 59cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker} Volume; 60cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker 616809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongkertypedef struct { 626809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker // number of frames in indeterminate progress bar animation 636809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker int indeterminate_frames; 646809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker 656809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker // number of frames per second to try to maintain when animating 666809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker int update_fps; 676809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker 686809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker // number of frames in installing animation. may be zero for a 696809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker // static installation icon. 706809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker int installing_frames; 716809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker 726809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker // the install icon is animated by drawing images containing the 736809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker // changing part over the base icon. These specify the 746809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker // coordinates of the upper-left corner. 756809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker int install_overlay_offset_x; 766809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker int install_overlay_offset_y; 776809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker 786809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker} UIParameters; 796809c51f8db86f1ab00a076cf570439d11920d3aDoug Zongker 80469243e53689b6f312d20813444dc00d83528758Doug Zongker// fopen a file, mounting volumes and making parent dirs as necessary. 81469243e53689b6f312d20813444dc00d83528758Doug ZongkerFILE* fopen_path(const char *path, const char *mode); 82469243e53689b6f312d20813444dc00d83528758Doug Zongker 8328ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker#ifdef __cplusplus 8428ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker} 8528ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker#endif 8628ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker 87c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project#endif // RECOVERY_COMMON_H 88