
* only shim v2 runc v2 ("io.containerd.runc.v2") is supported * only PID metrics is implemented. Others should be implemented in separate PRs. * lots of code duplication in v1 metrics and v2 metrics. Dedupe should be separate PR. Signed-off-by: Akihiro Suda <akihiro.suda.cz@hco.ntt.co.jp>
43 lines
580 B
Go
43 lines
580 B
Go
package asm
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// Register is the source or destination of most operations.
|
|
type Register uint8
|
|
|
|
// R0 contains return values.
|
|
const R0 Register = 0
|
|
|
|
// Registers for function arguments.
|
|
const (
|
|
R1 Register = R0 + 1 + iota
|
|
R2
|
|
R3
|
|
R4
|
|
R5
|
|
)
|
|
|
|
// Callee saved registers preserved by function calls.
|
|
const (
|
|
R6 Register = R5 + 1 + iota
|
|
R7
|
|
R8
|
|
R9
|
|
)
|
|
|
|
// Read-only frame pointer to access stack.
|
|
const (
|
|
R10 Register = R9 + 1
|
|
RFP = R10
|
|
)
|
|
|
|
func (r Register) String() string {
|
|
v := uint8(r)
|
|
if v == 10 {
|
|
return "rfp"
|
|
}
|
|
return fmt.Sprintf("r%d", v)
|
|
}
|