1343181Sdim//===-- State.cpp -----------------------------------------------*- C++ -*-===// 2343181Sdim// 3353358Sdim// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4353358Sdim// See https://llvm.org/LICENSE.txt for license information. 5353358Sdim// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6343181Sdim// 7343181Sdim//===----------------------------------------------------------------------===// 8343181Sdim 9343181Sdim#include "lldb/Utility/State.h" 10343181Sdim 11343181Sdimusing namespace lldb; 12343181Sdimusing namespace lldb_private; 13343181Sdim 14343181Sdimconst char *lldb_private::StateAsCString(StateType state) { 15343181Sdim switch (state) { 16343181Sdim case eStateInvalid: 17343181Sdim return "invalid"; 18343181Sdim case eStateUnloaded: 19343181Sdim return "unloaded"; 20343181Sdim case eStateConnected: 21343181Sdim return "connected"; 22343181Sdim case eStateAttaching: 23343181Sdim return "attaching"; 24343181Sdim case eStateLaunching: 25343181Sdim return "launching"; 26343181Sdim case eStateStopped: 27343181Sdim return "stopped"; 28343181Sdim case eStateRunning: 29343181Sdim return "running"; 30343181Sdim case eStateStepping: 31343181Sdim return "stepping"; 32343181Sdim case eStateCrashed: 33343181Sdim return "crashed"; 34343181Sdim case eStateDetached: 35343181Sdim return "detached"; 36343181Sdim case eStateExited: 37343181Sdim return "exited"; 38343181Sdim case eStateSuspended: 39343181Sdim return "suspended"; 40343181Sdim } 41343181Sdim return "unknown"; 42343181Sdim} 43343181Sdim 44343181Sdimconst char *lldb_private::GetPermissionsAsCString(uint32_t permissions) { 45343181Sdim switch (permissions) { 46343181Sdim case 0: 47343181Sdim return "---"; 48343181Sdim case ePermissionsWritable: 49343181Sdim return "-w-"; 50343181Sdim case ePermissionsReadable: 51343181Sdim return "r--"; 52343181Sdim case ePermissionsExecutable: 53343181Sdim return "--x"; 54343181Sdim case ePermissionsReadable | ePermissionsWritable: 55343181Sdim return "rw-"; 56343181Sdim case ePermissionsReadable | ePermissionsExecutable: 57343181Sdim return "r-x"; 58343181Sdim case ePermissionsWritable | ePermissionsExecutable: 59343181Sdim return "-wx"; 60343181Sdim case ePermissionsReadable | ePermissionsWritable | ePermissionsExecutable: 61343181Sdim return "rwx"; 62343181Sdim default: 63343181Sdim break; 64343181Sdim } 65343181Sdim return "???"; 66343181Sdim} 67343181Sdim 68343181Sdimbool lldb_private::StateIsRunningState(StateType state) { 69343181Sdim switch (state) { 70343181Sdim case eStateAttaching: 71343181Sdim case eStateLaunching: 72343181Sdim case eStateRunning: 73343181Sdim case eStateStepping: 74343181Sdim return true; 75343181Sdim 76343181Sdim case eStateConnected: 77343181Sdim case eStateDetached: 78343181Sdim case eStateInvalid: 79343181Sdim case eStateUnloaded: 80343181Sdim case eStateStopped: 81343181Sdim case eStateCrashed: 82343181Sdim case eStateExited: 83343181Sdim case eStateSuspended: 84343181Sdim break; 85343181Sdim } 86343181Sdim return false; 87343181Sdim} 88343181Sdim 89343181Sdimbool lldb_private::StateIsStoppedState(StateType state, bool must_exist) { 90343181Sdim switch (state) { 91343181Sdim case eStateInvalid: 92343181Sdim case eStateConnected: 93343181Sdim case eStateAttaching: 94343181Sdim case eStateLaunching: 95343181Sdim case eStateRunning: 96343181Sdim case eStateStepping: 97343181Sdim case eStateDetached: 98343181Sdim break; 99343181Sdim 100343181Sdim case eStateUnloaded: 101343181Sdim case eStateExited: 102343181Sdim return !must_exist; 103343181Sdim 104343181Sdim case eStateStopped: 105343181Sdim case eStateCrashed: 106343181Sdim case eStateSuspended: 107343181Sdim return true; 108343181Sdim } 109343181Sdim return false; 110343181Sdim} 111