diff options
Diffstat (limited to 'cmds/dumpstate/dumpstate.h')
-rw-r--r-- | cmds/dumpstate/dumpstate.h | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/cmds/dumpstate/dumpstate.h b/cmds/dumpstate/dumpstate.h new file mode 100644 index 0000000..4e88e4b --- /dev/null +++ b/cmds/dumpstate/dumpstate.h @@ -0,0 +1,138 @@ +/* + * Copyright (C) 2008 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef _DUMPSTATE_H_ +#define _DUMPSTATE_H_ + +#include <time.h> + +// Commands time out after 15 seconds +#define TIMEOUT 15 + +#define PRINT(s) printf("%s\n", s) + +#define DUMP(file) dump_file(file) + +#define DUMP_FILES(path) dump_files(path) + +#define DUMP_PROMPT(prompt, file) \ +{ \ + printf(prompt); \ + dump_file(file); \ +} + +#define EXEC(cmd) \ +{ \ + static struct Command c = { \ + "/system/bin/" cmd, \ + { cmd, 0 } \ + }; \ + run_command(&c, TIMEOUT); \ +} + +#define EXEC_XBIN(cmd) \ +{ \ + static struct Command c = { \ + "/system/xbin/" cmd, \ + { cmd, 0 } \ + }; \ + run_command(&c, TIMEOUT); \ +} + +#define EXEC2(cmd, a1, a2) \ +{ \ + static struct Command c = { \ + "/system/bin/" cmd, \ + { cmd, a1, a2, 0 } \ + }; \ + run_command(&c, TIMEOUT); \ +} + +#define EXEC4(cmd, a1, a2, a3, a4) \ +{ \ + static struct Command c = { \ + "/system/bin/" cmd, \ + { cmd, a1, a2, a3, a4, 0 } \ + }; \ + run_command(&c, TIMEOUT); \ +} + +#define EXEC6(cmd, a1, a2, a3, a4, a5, a6) \ +{ \ + static struct Command c = { \ + "/system/bin/" cmd, \ + { cmd, a1, a2, a3, a4, a5, a6, 0 } \ + }; \ + run_command(&c, TIMEOUT); \ +} + +#define EXEC7(cmd, a1, a2, a3, a4, a5, a6, a7) \ +{ \ + static struct Command c = { \ + "/system/bin/" cmd, \ + { cmd, a1, a2, a3, a4, a5, a6, a7, 0 } \ + }; \ + run_command(&c, TIMEOUT); \ +} + +#define EXEC8(cmd, a1, a2, a3, a4, a5, a6, a7, a8) \ +{ \ + static struct Command c = { \ + "/system/bin/" cmd, \ + { cmd, a1, a2, a3, a4, a5, a6, a7, a8, 0 } \ + }; \ + run_command(&c, TIMEOUT); \ +} + +#define PROPERTY(name) print_property(name) + +struct Command { + const char* path; + char* const args[]; +}; +typedef struct Command Command; + +/* prints the contents of a file */ +int dump_file(const char* path); + +/* prints the contents of all files in a directory */ +void dump_files(const char* path); + +/* forks a command and waits for it to finish */ +int run_command(struct Command* cmd, int timeout); + +/* reads the current time into tm */ +void get_time(struct tm *tm); + +/* prints the date in tm */ +void print_date(const char* prompt, struct tm *tm); + +/* prints the name and value of a system property */ +int print_property(const char* name); + +/* prints all the system properties */ +void print_properties(); + +/* creates directories as needed for the given path */ +void create_directories(char *path); + +/* runs the vibrator using the given pattern */ +void vibrate_pattern(int fd, int* pattern); + +/* prevents the OOM killer from killing us */ +void protect_from_oom_killer(); + +#endif /* _DUMPSTATE_H_ */ |