1343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme/*
2343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme * Copyright (C) 2009 The Android Open Source Project
3343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme *
4343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme * Licensed under the Apache License, Version 2.0 (the "License");
5343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme * you may not use this file except in compliance with the License.
6343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme * You may obtain a copy of the License at
7343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme *
8343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme *      http://www.apache.org/licenses/LICENSE-2.0
9343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme *
10343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme * Unless required by applicable law or agreed to in writing, software
11343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme * distributed under the License is distributed on an "AS IS" BASIS,
12343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme * See the License for the specific language governing permissions and
14343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme * limitations under the License.
15343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme */
16343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme
17343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme/*
18343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme * Command that dumps interesting system state to the log.
19343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme */
20343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme
21343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme#include "dumpsys.h"
22343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme
23343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme#include <binder/IServiceManager.h>
24343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme#include <binder/TextOutput.h>
25343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme
26343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme#include <signal.h>
27343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme#include <stdio.h>
28343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme
29343175a5ffeba6d1714336913a81b3029df73dbbFelipe Lemeusing namespace android;
30343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme
31343175a5ffeba6d1714336913a81b3029df73dbbFelipe Lemeint main(int argc, char* const argv[]) {
32343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme    signal(SIGPIPE, SIG_IGN);
33343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme    sp<IServiceManager> sm = defaultServiceManager();
34343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme    fflush(stdout);
35343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme    if (sm == nullptr) {
36343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme        ALOGE("Unable to get default service manager!");
37343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme        aerr << "dumpsys: Unable to get default service manager!" << endl;
38343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme        return 20;
39343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme    }
40343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme
412c3cd83603a7eefe7efe8c99cbe1c04b54cfe599Steven Moreland    Dumpsys dumpsys(sm.get());
42343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme    return dumpsys.main(argc, argv);
43343175a5ffeba6d1714336913a81b3029df73dbbFelipe Leme}
44