The Pedigree Project
0.1
src
modules
subsys
posix
trace-task-token.h
1
/* Copyright (c) 2026, Pedigree Developers. */
2
#ifndef PEDIGREE_POSIX_TRACE_TASK_TOKEN_H
3
#define PEDIGREE_POSIX_TRACE_TASK_TOKEN_H
4
5
#include "pedigree/kernel/Spinlock.h"
6
#include "pedigree/kernel/compiler.h"
7
#include "pedigree/kernel/processor/types.h"
8
#include "pedigree/kernel/utilities/SharedPointer.h"
9
10
class
PosixTraceContext
;
11
class
Thread
;
12
13
enum class
TraceStatus {
14
Success,
15
Missing,
16
Denied,
17
Busy,
18
Unsupported,
19
NoMemory,
20
Invalid,
21
Full,
22
NotStopped
23
};
24
25
class
EXPORTED_PUBLIC
TraceTaskToken
{
26
public
:
27
enum class
State { Staged, Live, Closed };
28
struct
Snapshot
{
29
State state = State::Staged;
30
size_t
processId = 0, localThreadId = 0, linuxTaskId = 0;
31
};
32
TraceTaskToken
() =
default
;
33
Snapshot
snapshot()
const
;
34
bool
live()
const
;
35
36
private
:
37
friend
class
PosixTraceContext
;
38
TraceTaskToken
(
const
TraceTaskToken
&) =
delete
;
39
TraceTaskToken
& operator=(
const
TraceTaskToken
&) =
delete
;
40
void
publish(
const
Thread
&);
41
void
promote(
const
Thread
&);
42
void
close();
43
mutable
Spinlock
m_Lock;
44
Snapshot
m_Identity;
45
};
46
using
TraceTaskRef
=
SharedPointer<TraceTaskToken>
;
47
#endif
PosixTraceContext
Definition
trace-context.h:56
SharedPointer< TraceTaskToken >
Spinlock
Definition
Spinlock.h:27
Thread
Definition
Thread.h:75
TraceTaskToken
Definition
trace-task-token.h:25
TraceTaskToken::Snapshot
Definition
trace-task-token.h:28
Generated on Thu Sep 24 2026 06:23:59 for The Pedigree Project by
1.9.8