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