fs

package
v3.4.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Dec 21, 2018 License: Apache-2.0 Imports: 4 Imported by: 0

Documentation

Overview

Package fs provides access to the file system on the host.

It exposes ioctl syscall and epoll in an OS agnostic way and permits completely disabling file access to lock down unit tests.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Inhibit

func Inhibit()

Inhibit inhibits any future file I/O. It panics if any file was opened up to now.

It should only be called in unit tests.

Types

type Event

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

Event is a file system event.

func (*Event) MakeEvent

func (e *Event) MakeEvent(fd uintptr) error

MakeEvent initializes an epoll *edge* triggered event on linux.

An edge triggered event is basically an "auto-reset" event, where waiting on the edge resets it. A level triggered event requires manual resetting; this could be done via a Read() call but there's no need to require the user to call Read(). This is particularly useless in the case of gpio.RisingEdge and gpio.FallingEdge.

As per the official doc, edge triggers is still remembered even when no epoll_wait() call is running, so no edge is missed. Two edges will be coallesced into one if the user mode process can't keep up. There's no accumulation of edges.

func (*Event) Wait

func (e *Event) Wait(timeoutms int) (int, error)

Wait waits for an event or the specified amount of time.

type File

type File struct {
	*os.File
}

File is a superset of os.File.

func Open

func Open(path string, flag int) (*File, error)

Open opens a file.

Returns an error if Inhibit() was called.

func (*File) Ioctl

func (f *File) Ioctl(op uint, data uintptr) error

Ioctl sends an ioctl to the file handle.

type Ioctler

type Ioctler interface {
	// Ioctl sends a linux ioctl on the file handle. op is effectively a uint32.
	//
	// The op is expected to be encoded in the format on x64. ARM happens to
	// share the same format.
	Ioctl(op uint, data uintptr) error
}

Ioctler is a file handle that supports ioctl calls.

Jump to

Keyboard shortcuts

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