]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm-project/lldb/include/lldb/API/SBUnixSignals.h
Move all sources from the llvm project into contrib/llvm-project.
[FreeBSD/FreeBSD.git] / contrib / llvm-project / lldb / include / lldb / API / SBUnixSignals.h
1 //===-- SBUnixSignals.h -----------------------------------------------*- C++
2 //-*-===//
3 //
4 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
5 // See https://llvm.org/LICENSE.txt for license information.
6 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //
8 //===----------------------------------------------------------------------===//
9
10 #ifndef LLDB_SBUnixSignals_h_
11 #define LLDB_SBUnixSignals_h_
12
13 #include "lldb/API/SBDefines.h"
14
15 namespace lldb {
16
17 class LLDB_API SBUnixSignals {
18 public:
19   SBUnixSignals();
20
21   SBUnixSignals(const lldb::SBUnixSignals &rhs);
22
23   ~SBUnixSignals();
24
25   const SBUnixSignals &operator=(const lldb::SBUnixSignals &rhs);
26
27   void Clear();
28
29   explicit operator bool() const;
30
31   bool IsValid() const;
32
33   const char *GetSignalAsCString(int32_t signo) const;
34
35   int32_t GetSignalNumberFromName(const char *name) const;
36
37   bool GetShouldSuppress(int32_t signo) const;
38
39   bool SetShouldSuppress(int32_t signo, bool value);
40
41   bool GetShouldStop(int32_t signo) const;
42
43   bool SetShouldStop(int32_t signo, bool value);
44
45   bool GetShouldNotify(int32_t signo) const;
46
47   bool SetShouldNotify(int32_t signo, bool value);
48
49   int32_t GetNumSignals() const;
50
51   int32_t GetSignalAtIndex(int32_t index) const;
52
53 protected:
54   friend class SBProcess;
55   friend class SBPlatform;
56
57   SBUnixSignals(lldb::ProcessSP &process_sp);
58
59   SBUnixSignals(lldb::PlatformSP &platform_sp);
60
61   lldb::UnixSignalsSP GetSP() const;
62
63   void SetSP(const lldb::UnixSignalsSP &signals_sp);
64
65 private:
66   lldb::UnixSignalsWP m_opaque_wp;
67 };
68
69 } // namespace lldb
70
71 #endif // LLDB_SBUnixSignals_h_