rpctype

package
v0.0.0-...-26c8979 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 2, 2021 License: Apache-2.0 Imports: 13 Imported by: 0

Documentation

Overview

Package rpctype contains types of message passed via net/rpc connections between various parts of the system.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Dial

func Dial(addr string) (net.Conn, error)

func RPCCall

func RPCCall(addr, method string, args, reply interface{}) error

Types

type CheckArgs

type CheckArgs struct {
	Name          string
	Error         string
	EnabledCalls  map[string][]int
	DisabledCalls map[string][]SyscallReason
	Features      *host.Features
}

type ConnectArgs

type ConnectArgs struct {
	Name string
}

type ConnectRes

type ConnectRes struct {
	EnabledCalls     []int
	GitRevision      string
	TargetRevision   string
	AllSandboxes     bool
	CheckResult      *CheckArgs
	MemoryLeakFrames []string
	DataRaceFrames   []string
}

type HubConnectArgs

type HubConnectArgs struct {
	// Client/Key are used for authentication.
	Client string
	Key    string
	// Manager name, must start with Client.
	Manager string
	// Manager has started with an empty corpus and requests whole hub corpus.
	Fresh bool
	// Set of system call names supported by this manager.
	// Used to filter out programs with unsupported calls.
	Calls []string
	// Current manager corpus.
	Corpus [][]byte
}

type HubSyncArgs

type HubSyncArgs struct {
	// see HubConnectArgs.
	Client     string
	Key        string
	Manager    string
	NeedRepros bool
	// Programs added to corpus since last sync or connect.
	Add [][]byte
	// Hashes of programs removed from corpus since last sync or connect.
	Del []string
	// Repros found since last sync.
	Repros [][]byte
}

type HubSyncRes

type HubSyncRes struct {
	// Set of programs from other managers.
	Progs [][]byte
	// Set of repros from other managers.
	Repros [][]byte
	// Number of remaining pending programs,
	// if >0 manager should do sync again.
	More int
}

type NewInputArgs

type NewInputArgs struct {
	Name string
	RPCInput
}

type PollArgs

type PollArgs struct {
	Name              string
	NeedCandidates    bool
	MaxSignal         signal.Serial
	Stats             map[string]uint64
	NeedTriages       bool
	Triages           map[hash.Sig]int
	TriagesUnfinished []RPCTriage
	SmashesFinished   []hash.Sig
	RPCMABStatus
}

type PollRes

type PollRes struct {
	Candidates []RPCCandidate
	NewInputs  []RPCInput
	Triages    []RPCTriage
	MaxSignal  signal.Serial
	RPCMABStatus
}

type RPCCandidate

type RPCCandidate struct {
	Prog      []byte
	Minimized bool
	Smashed   bool
}

type RPCClient

type RPCClient struct {
	// contains filtered or unexported fields
}

func NewRPCClient

func NewRPCClient(addr string) (*RPCClient, error)

func (*RPCClient) Call

func (cli *RPCClient) Call(method string, args, reply interface{}) error

func (*RPCClient) Close

func (cli *RPCClient) Close()

type RPCInput

type RPCInput struct {
	Call   string
	Prog   []byte
	Signal signal.Serial
	Cover  []uint32
	glc.CorpusGLC
}

type RPCMABStatus

type RPCMABStatus struct {
	Round      int
	Exp31Round int
	MABGLC     glc.MABGLC
	CorpusGLC  map[hash.Sig]glc.CorpusGLC
	TriageInfo map[hash.Sig]*glc.TriageInfo
}

type RPCServer

type RPCServer struct {
	// contains filtered or unexported fields
}

func NewRPCServer

func NewRPCServer(addr, name string, receiver interface{}) (*RPCServer, error)

func (*RPCServer) Addr

func (serv *RPCServer) Addr() net.Addr

func (*RPCServer) Serve

func (serv *RPCServer) Serve()

type RPCTriage

type RPCTriage struct {
	Sig        hash.Sig
	CallIndex  int
	Prog       []byte
	Flags      int
	Info       ipc.CallInfo
	Source     int
	SourceCost float64
}

type RunTestDoneArgs

type RunTestDoneArgs struct {
	Name   string
	ID     int
	Output []byte
	Info   []*ipc.ProgInfo
	Error  string
}

type RunTestPollReq

type RunTestPollReq struct {
	Name string
}

type RunTestPollRes

type RunTestPollRes struct {
	ID     int
	Bin    []byte
	Prog   []byte
	Cfg    *ipc.Config
	Opts   *ipc.ExecOpts
	Repeat int
}

type SyscallReason

type SyscallReason struct {
	ID     int
	Reason string
}

type TriageArgs

type TriageArgs struct {
	Name string
	RPCTriage
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL