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> 21596b342a0476629badb41b840494254a19c57daeDoug Zongker#include <stdarg.h> 22c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project 2328ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker#ifdef __cplusplus 2428ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongkerextern "C" { 2528ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker#endif 2628ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker 27596b342a0476629badb41b840494254a19c57daeDoug Zongker#define LOGE(...) ui_print("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 42f35d1cef7c19db975a1295e8c23c7fb8bd2489f9Ken Sumralltypedef struct fstab_rec Volume; 43cc8cd3f3cac07f6927ead277ef390c000ae798d9Doug Zongker 44469243e53689b6f312d20813444dc00d83528758Doug Zongker// fopen a file, mounting volumes and making parent dirs as necessary. 45469243e53689b6f312d20813444dc00d83528758Doug ZongkerFILE* fopen_path(const char *path, const char *mode); 46469243e53689b6f312d20813444dc00d83528758Doug Zongker 47596b342a0476629badb41b840494254a19c57daeDoug Zongkervoid ui_print(const char* format, ...); 48596b342a0476629badb41b840494254a19c57daeDoug Zongker 4928ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker#ifdef __cplusplus 5028ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker} 5128ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker#endif 5228ce47cfa6919518a8c298088bf08b03bb374c0fDoug Zongker 53c24a8e688a6312764254beac2b2520bb0c5e998dThe Android Open Source Project#endif // RECOVERY_COMMON_H 54