devproc: change user from char* to struct username
authorFergus Simpson <afergs@google.com>
Tue, 10 Jan 2017 22:29:29 +0000 (14:29 -0800)
committerBarret Rhoden <brho@cs.berkeley.edu>
Wed, 18 Jan 2017 18:27:54 +0000 (13:27 -0500)
commitb1f27b8dccf87491bfec00ec68aeca71616ce979
treee6e3550957ba81d1788b6990393b3b78230b1ab4
parent8cf0b51fd8b3481365deb1aa12ba36d4e46be8c4
devproc: change user from char* to struct username

A process's username is now stored in a struct as char* so that it can
be easily paired with a spinlock. The spinlock is currently only used to
protect writes. The eve variable has also been changed from a char* to
the new username struct.

A helper for setting a username has been added. It uses a spinlock to
protect writes, but not reads. It performs a backward write so if any
process reads the value while it's been written, the result will be an
empty string.

All reads and writes to (struct proc *)->user have been updated to
either read (struct proc *)->user.name directly or write to it using the
new helper function, respectively. Where the old user char * was passed
on, it was checked that the pointer was only used for reading. The same
has been done for all uses of eve.

Change-Id: Ia573cccb6f59c2ecc7c84ef9013fa4d74cad2885
Signed-off-by: Fergus Simpson <afergs@google.com>
Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
20 files changed:
kern/drivers/dev/acpi.c
kern/drivers/dev/alarm.c
kern/drivers/dev/capability.c
kern/drivers/dev/cons.c
kern/drivers/dev/mnt.c
kern/drivers/dev/pci.c
kern/drivers/dev/pipe.c
kern/drivers/dev/proc.c
kern/drivers/dev/root.c
kern/drivers/dev/sd.c
kern/drivers/dev/srv.c
kern/include/env.h
kern/include/ns.h
kern/include/process.h
kern/src/env.c
kern/src/net/devip.c
kern/src/net/netif.c
kern/src/net/plan9.c
kern/src/ns/dev.c
kern/src/process.c