Commit 6238964d authored by Robert Griesemer's avatar Robert Griesemer

gofmt-ify nacl

R=rsc
http://go/go-review/1018062
parent 77334b98
......@@ -21,13 +21,13 @@ import (
"unsafe";
)
var srpcEnabled = srpc.Enabled();
var srpcEnabled = srpc.Enabled()
// native_client/src/trusted/service_runtime/include/sys/audio_video.h
// Subsystem values for Init.
const (
SubsystemVideo = 1<<iota;
SubsystemVideo = 1<<iota;
SubsystemAudio;
SubsystemEmbed;
)
......@@ -35,20 +35,20 @@ const (
// Audio formats.
const (
AudioFormatStereo44K = iota;
AudioFormatStereo44K = iota;
AudioFormatStereo48K;
)
// A Window represents a connection to the Native Client window.
// It implements draw.Context.
type Window struct {
Embedded bool; // running as part of a web page?
*Image; // screen image
Embedded bool; // running as part of a web page?
*Image; // screen image
mousec chan draw.Mouse;
kbdc chan int;
quitc chan bool;
resizec chan bool;
mousec chan draw.Mouse;
kbdc chan int;
quitc chan bool;
resizec chan bool;
}
// *Window implements draw.Context
......@@ -89,7 +89,7 @@ func Init(subsys int, dx, dy int) (*Window, os.Error) {
xsubsys := subsys;
if srpcEnabled {
waitBridge();
xsubsys &^= SubsystemVideo|SubsystemEmbed;
xsubsys &^= SubsystemVideo | SubsystemEmbed;
}
if xsubsys & SubsystemEmbed != 0 {
......@@ -102,7 +102,7 @@ func Init(subsys int, dx, dy int) (*Window, os.Error) {
return nil, err;
}
if subsys&SubsystemVideo != 0 {
if subsys & SubsystemVideo != 0 {
if dx, dy, err = videoInit(dx, dy); err != nil {
return nil, err;
}
......@@ -113,7 +113,7 @@ func Init(subsys int, dx, dy int) (*Window, os.Error) {
w.quitc = make(chan bool);
}
if subsys&SubsystemAudio != 0 {
if subsys & SubsystemAudio != 0 {
var n int;
if n, err = audioInit(AudioFormatStereo44K, 2048); err != nil {
return nil, err;
......@@ -121,7 +121,7 @@ func Init(subsys int, dx, dy int) (*Window, os.Error) {
println("audio", n);
}
if subsys&SubsystemVideo != 0 {
if subsys & SubsystemVideo != 0 {
go w.readEvents();
}
......@@ -158,7 +158,7 @@ func videoUpdate(data []Color) (err os.Error) {
return os.NewSyscallError("video_update", syscall.VideoUpdate((*uint32)(&data[0])));
}
var noEvents = os.NewError("no events");
var noEvents = os.NewError("no events")
func videoPollEvent(ev []byte) (err os.Error) {
if srpcEnabled {
......@@ -167,7 +167,7 @@ func videoPollEvent(ev []byte) (err os.Error) {
return noEvents;
}
bytes.Copy(ev, &bridge.share.eq.event[r]);
bridge.share.eq.ri = (r+1) % eqsize;
bridge.share.eq.ri = (r+1)%eqsize;
return nil;
}
return os.NewSyscallError("video_poll_event", syscall.VideoPollEvent(&ev[0]));
......@@ -209,13 +209,13 @@ func AudioStream(data []uint16) (nextSize int, err os.Error) {
// Synchronization structure to wait for bridge to become ready.
var bridge struct {
c chan bool;
displayFd int;
rpcFd int;
share *videoShare;
pixel []Color;
client *srpc.Client;
flushRPC *srpc.RPC;
c chan bool;
displayFd int;
rpcFd int;
share *videoShare;
pixel []Color;
client *srpc.Client;
flushRPC *srpc.RPC;
}
// Wait for bridge to become ready.
......@@ -227,27 +227,27 @@ func waitBridge() {
bridge.c <- <-bridge.c;
}
const eqsize = 64;
const eqsize = 64
// Data structure shared with host via mmap.
type videoShare struct {
revision int32; // definition below is rev 100 unless noted
mapSize int32;
revision int32; // definition below is rev 100 unless noted
mapSize int32;
// event queue
eq struct {
ri uint32; // read index [0,eqsize)
wi uint32; // write index [0,eqsize)
eof int32;
event [eqsize][64]byte;
eq struct {
ri uint32; // read index [0,eqsize)
wi uint32; // write index [0,eqsize)
eof int32;
event [eqsize][64]byte;
};
// now unused
_, _, _, _ int32;
_, _, _, _ int32;
// video backing store information
width, height, _, size int32;
ready int32; // rev 0x101
width, height, _, size int32;
ready int32; // rev 0x101
}
// The frame buffer data is videoShareSize bytes after
......@@ -271,7 +271,7 @@ func (multimediaBridge) Run(arg, ret []interface{}, size []int) srpc.Errno {
addr, _, errno := syscall.Syscall6(syscall.SYS_MMAP,
0,
uintptr(st.Size),
syscall.PROT_READ|syscall.PROT_WRITE,
syscall.PROT_READ | syscall.PROT_WRITE,
syscall.MAP_SHARED,
uintptr(bridge.displayFd),
0);
......@@ -284,8 +284,8 @@ func (multimediaBridge) Run(arg, ret []interface{}, size []int) srpc.Errno {
// Overestimate frame buffer size
// (must use a compile-time constant)
// and then reslice. 256 megapixels (1 GB) should be enough.
fb := (*[256*1024*1024]Color)(unsafe.Pointer(addr+videoShareSize));
bridge.pixel = fb[0:(st.Size - videoShareSize)/4];
fb := (*[256*1024*1024]Color)(unsafe.Pointer(addr + videoShareSize));
bridge.pixel = fb[0 : (st.Size - videoShareSize)/4];
// Configure RPC connection back to client.
var err os.Error;
......@@ -308,4 +308,3 @@ func init() {
srpc.Add("nacl_multimedia_bridge", "hh:", multimediaBridge{});
}
}
This diff is collapsed.
......@@ -16,11 +16,11 @@ import (
// linear slice or as a two-dimensional slice of slices.
// Image implements image.Image.
type Image struct {
Linear []Color;
Pixel [][]Color;
Linear []Color;
Pixel [][]Color;
}
var _ image.Image = (*Image)(nil);
var _ image.Image = (*Image)(nil)
func (m *Image) ColorModel() image.ColorModel {
return ColorModel;
......@@ -62,18 +62,19 @@ func newImage(dx, dy int, linear []Color) *Image {
// A Color represents a Native Client color value,
// a 32-bit R, G, B, A value packed as 0xAARRGGBB.
type Color uint32
func (p Color) RGBA() (r, g, b, a uint32) {
x := uint32(p);
a = x>>24;
a |= a<<8;
a |= a<<16;
r = (x>>16) & 0xFF;
r = (x>>16)&0xFF;
r |= r<<8;
r |= r<<16;
g = (x>>8) & 0xFF;
g = (x>>8)&0xFF;
g |= g<<8;
g |= g<<16;
b = x & 0xFF;
b = x&0xFF;
b |= b<<8;
b |= b<<16;
return;
......@@ -91,5 +92,4 @@ func toColor(color image.Color) image.Color {
}
// ColorModel is the color model corresponding to the Native Client Color.
var ColorModel = image.ColorModelFunc(toColor);
var ColorModel = image.ColorModelFunc(toColor)
......@@ -14,30 +14,30 @@ import (
// A Client represents the client side of an SRPC connection.
type Client struct {
fd int; // fd to server
r msgReceiver;
s msgSender;
service map[string]srv; // services by name
out chan *msg; // send to out to write to connection
mu sync.Mutex; // protects pending, idGen
pending map[uint64]*RPC;
idGen uint64; // generator for request IDs
fd int; // fd to server
r msgReceiver;
s msgSender;
service map[string]srv; // services by name
out chan *msg; // send to out to write to connection
mu sync.Mutex; // protects pending, idGen
pending map[uint64]*RPC;
idGen uint64; // generator for request IDs
}
// A srv is a single method that the server offers.
type srv struct {
num uint32; // method number
fmt string; // argument format
num uint32; // method number
fmt string; // argument format
}
// An RPC represents a single RPC issued by a client.
type RPC struct {
Ret []interface{}; // Return values
Done chan *RPC; // Channel where notification of done arrives
Errno Errno; // Status code
c *Client;
id uint64; // request id
Ret []interface{}; // Return values
Done chan *RPC; // Channel where notification of done arrives
Errno Errno; // Status code
c *Client;
id uint64; // request id
}
// NewClient allocates a new client using the file descriptor fd.
......@@ -53,8 +53,8 @@ func NewClient(fd int) (c *Client, err os.Error) {
m := &msg{
protocol: protocol,
isReq: true,
Ret: []interface{}{ []byte(nil) },
Size: []int{ 4000 },
Ret: []interface{}{[]byte(nil)},
Size: []int{4000},
};
m.packRequest();
c.s.send(m);
......@@ -72,7 +72,7 @@ func NewClient(fd int) (c *Client, err os.Error) {
if i < 0 {
continue;
}
c.service[string(line[0:i])] = srv{uint32(n), string(line[i+1:len(line)])};
c.service[string(line[0:i])] = srv{uint32(n), string(line[i+1 : len(line)])};
}
c.out = make(chan *msg);
......@@ -159,11 +159,11 @@ func (r *RPC) Start(name string, arg []interface{}) {
for srv.fmt[i] != ':' {
i++;
}
fmt := srv.fmt[i+1:len(srv.fmt)];
fmt := srv.fmt[i+1 : len(srv.fmt)];
// Now the return prototypes.
m.Ret = make([]interface{}, len(fmt) - i);
m.Size = make([]int, len(fmt) - i);
m.Ret = make([]interface{}, len(fmt)-i);
m.Size = make([]int, len(fmt)-i);
for i := 0; i < len(fmt); i++ {
switch fmt[i] {
default:
......
......@@ -17,8 +17,9 @@ import (
// An Errno is an SRPC status code.
type Errno uint32
const (
OK Errno = 256 + iota;
OK Errno = 256+iota;
ErrBreak;
ErrMessageTruncated;
ErrNoMemory;
......@@ -33,27 +34,27 @@ const (
ErrAppError;
)
var errstr = [...]string {
var errstr = [...]string{
OK-OK: "ok",
ErrBreak-OK: "break",
ErrMessageTruncated-OK: "message truncated",
ErrNoMemory-OK: "out of memory",
ErrProtocolMismatch-OK: "protocol mismatch",
ErrBadRPCNumber-OK: "invalid RPC method number",
ErrBadArgType-OK: "unexpected argument type",
ErrTooFewArgs-OK: "too few arguments",
ErrTooManyArgs-OK: "too many arguments",
ErrInArgTypeMismatch-OK: "input argument type mismatch",
ErrOutArgTypeMismatch-OK: "output argument type mismatch",
ErrInternalError-OK: "internal error",
ErrAppError-OK: "application error",
ErrMessageTruncated - OK: "message truncated",
ErrNoMemory - OK: "out of memory",
ErrProtocolMismatch - OK: "protocol mismatch",
ErrBadRPCNumber - OK: "invalid RPC method number",
ErrBadArgType - OK: "unexpected argument type",
ErrTooFewArgs - OK: "too few arguments",
ErrTooManyArgs - OK: "too many arguments",
ErrInArgTypeMismatch - OK: "input argument type mismatch",
ErrOutArgTypeMismatch - OK: "output argument type mismatch",
ErrInternalError - OK: "internal error",
ErrAppError - OK: "application error",
}
func (e Errno) String() string {
if e < OK || int(e-OK) >= len(errstr) {
return "Errno(" + strconv.Itoa64(int64(e)) + ")"
return "Errno(" + strconv.Itoa64(int64(e)) + ")";
}
return errstr[e - OK];
return errstr[e-OK];
}
// A *msgHdr is the data argument to the imc_recvmsg
......@@ -61,45 +62,45 @@ func (e Errno) String() string {
// counts trusted by the system calls, the data structure is unsafe
// to expose to package clients.
type msgHdr struct {
iov *iov;
niov int32;
desc *int32;
ndesc int32;
flags uint32;
iov *iov;
niov int32;
desc *int32;
ndesc int32;
flags uint32;
}
// A single region for I/O. Just as unsafe as msgHdr.
type iov struct {
base *byte;
len int32;
base *byte;
len int32;
}
// A msg is the Go representation of a message.
type msg struct {
rdata []byte; // data being consumed during message parsing
rdesc []int32; // file descriptors being consumed during message parsing
wdata []byte; // data being generated when replying
rdata []byte; // data being consumed during message parsing
rdesc []int32; // file descriptors being consumed during message parsing
wdata []byte; // data being generated when replying
// parsed version of message
protocol uint32;
requestId uint64;
isReq bool;
rpcNumber uint32;
gotHeader bool;
status Errno; // error code sent in response
Arg []interface{}; // method arguments
Ret []interface{}; // method results
Size []int; // max sizes for arrays in method results
fmt string; // accumulated format string of arg+":"+ret
protocol uint32;
requestId uint64;
isReq bool;
rpcNumber uint32;
gotHeader bool;
status Errno; // error code sent in response
Arg []interface{}; // method arguments
Ret []interface{}; // method results
Size []int; // max sizes for arrays in method results
fmt string; // accumulated format string of arg+":"+ret
}
// A msgReceiver receives messages from a file descriptor.
type msgReceiver struct {
fd int;
data [128*1024]byte;
desc [8]int32;
hdr msgHdr;
iov iov;
fd int;
data [128*1024]byte;
desc [8]int32;
hdr msgHdr;
iov iov;
}
func (r *msgReceiver) recv() (*msg, os.Error) {
......@@ -136,10 +137,9 @@ func (r *msgReceiver) recv() (*msg, os.Error) {
// A msgSender sends messages on a file descriptor.
type msgSender struct {
fd int;
hdr msgHdr;
iov iov;
fd int;
hdr msgHdr;
iov iov;
}
func (s *msgSender) send(m *msg) os.Error {
......@@ -222,8 +222,8 @@ func (m *msg) grow(n int) []byte {
bytes.Copy(a, m.wdata);
m.wdata = a;
}
m.wdata = m.wdata[0:i+n];
return m.wdata[i:i+n];
m.wdata = m.wdata[0 : i+n];
return m.wdata[i : i+n];
}
func (m *msg) wuint8(x uint8) {
......@@ -529,4 +529,3 @@ func (m *msg) packResponse() {
m.wuint32(uint32(len(m.Ret)));
m.packValues(m.Ret);
}
......@@ -22,13 +22,13 @@ import (
// It reads arguments from arg, checks size for array limits,
// writes return values to ret, and returns an Errno status code.
type Handler interface {
Run(arg, ret []interface{}, size []int) Errno
Run(arg, ret []interface{}, size []int) Errno;
}
type method struct {
name string;
fmt string;
handler Handler;
name string;
fmt string;
handler Handler;
}
var rpcMethod []method
......@@ -61,7 +61,7 @@ func Add(name, fmt string, handler Handler) {
}
rpcMethod = a;
}
rpcMethod = rpcMethod[0:n+1];
rpcMethod = rpcMethod[0 : n+1];
rpcMethod[n] = method{name, fmt, handler};
}
......@@ -175,7 +175,7 @@ func getFd() (fd int, err os.Error) {
// Enabled returns true if SRPC is enabled in the Native Client runtime.
func Enabled() bool {
_, err:= getFd();
_, err := getFd();
return err == nil;
}
......@@ -201,4 +201,3 @@ func (serviceDiscovery) Run(arg, ret []interface{}, size []int) Errno {
func init() {
Add("service_discovery", ":C", serviceDiscovery{});
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment