ref: 7d9f5607e87defb4366ff3c8ad9d24128884d869
parent: db55afd4a5f5297bce2b5a21427fc36d5f8d7a9c
author: glenda <glenda@cirno>
date: Fri May 3 17:24:56 EDT 2024
add files we have to change
--- /dev/null
+++ b/sys/include/tos.h
@@ -1,0 +1,24 @@
+typedef struct Tos Tos;
+typedef struct Plink Plink;
+
+#pragma incomplete Plink
+
+struct Tos {
+ struct /* Per process profiling */
+ {
+ Plink *pp; /* known to be 0(ptr) */
+ Plink *next; /* known to be 4(ptr) */
+ Plink *last;
+ Plink *first;
+ ulong pid;
+ ulong what;
+ } prof;
+ uvlong cyclefreq; /* cycle clock frequency if there is one, 0 otherwise */
+ vlong kcycles; /* cycles spent in kernel */
+ vlong pcycles; /* cycles spent in process (kernel + user) */
+ ulong pid; /* might as well put the pid here */
+ ulong clock;
+ /* top of stack is here */
+};
+
+extern Tos *_tos;
--- /dev/null
+++ b/sys/include/trace.h
@@ -1,0 +1,24 @@
+typedef enum Tevent {
+ SAdmit = 0, /* Edf admit */
+ SRelease, /* Edf release, waiting to be scheduled */
+ SEdf, /* running under EDF */
+ SRun, /* running best effort */
+ SReady, /* runnable but not running */
+ SSleep, /* blocked */
+ SYield, /* blocked waiting for release */
+ SSlice, /* slice exhausted */
+ SDeadline, /* proc's deadline */
+ SExpel, /* Edf expel */
+ SDead, /* proc dies */
+ SInts, /* Interrupt start */
+ SInte, /* Interrupt end */
+ SUser, /* user event */
+ Nevent,
+} Tevent;
+
+typedef struct Traceevent Traceevent;
+struct Traceevent {
+ ulong pid;
+ ulong etype; /* Event type */
+ vlong time; /* time stamp */
+};