syscall cleanup.
 * rename PORT.sh -> mkall.sh (hopefully more obvious),
   change behavior: run commands by default.
 * pull more constants out of #defines automatically,
   instead of editing large lists by hand.
 * add Recvfrom, Sendto

add os.O_EXCL.

R=r
http://go/go-review/1017009
diff --git a/src/pkg/syscall/syscall_linux_386.go b/src/pkg/syscall/syscall_linux_386.go
index 1f9a499..c506d78 100644
--- a/src/pkg/syscall/syscall_linux_386.go
+++ b/src/pkg/syscall/syscall_linux_386.go
@@ -57,7 +57,6 @@
 //sys	SyncFileRange(fd int, off int64, n int64, flags int) (errno int)
 //sys	getgroups(n int, list *_Gid_t) (nn int, errno int) = SYS_GETGROUPS32
 //sys	setgroups(n int, list *_Gid_t) (errno int) = SYS_SETGROUPS32
-
 //sys	Select(nfd int, r *FdSet, w *FdSet, e *FdSet, timeout *Timeval) (n int, errno int) = SYS__NEWSELECT
 
 // Underlying system call writes to newoffset via pointer.
@@ -100,25 +99,21 @@
 }
 
 func getsockname(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno int) {
-	var _ int;
 	_, errno = socketcall(_GETSOCKNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0);
 	return;
 }
 
 func getpeername(s int, rsa *RawSockaddrAny, addrlen *_Socklen) (errno int) {
-	var _ int;
 	_, errno = socketcall(_GETPEERNAME, uintptr(s), uintptr(unsafe.Pointer(rsa)), uintptr(unsafe.Pointer(addrlen)), 0, 0, 0);
 	return;
 }
 
 func bind(s int, addr uintptr, addrlen _Socklen) (errno int) {
-	var _ int;
 	_, errno = socketcall(_BIND, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0);
 	return;
 }
 
 func connect(s int, addr uintptr, addrlen _Socklen) (errno int) {
-	var _ int;
 	_, errno = socketcall(_CONNECT, uintptr(s), uintptr(addr), uintptr(addrlen), 0, 0, 0);
 	return;
 }
@@ -129,13 +124,29 @@
 }
 
 func setsockopt(s int, level int, name int, val uintptr, vallen int) (errno int) {
-	var _ int;
 	_, errno = socketcall(_SETSOCKOPT, uintptr(s), uintptr(level), uintptr(name), uintptr(val), uintptr(vallen), 0);
 	return;
 }
 
+func recvfrom(s int, p []byte, flags int, from *RawSockaddrAny, fromlen *_Socklen) (n int, errno int) {
+	var base uintptr;
+	if len(p) > 0 {
+		base = uintptr(unsafe.Pointer(&p));
+	}
+	n, errno = socketcall(_RECVFROM, uintptr(s), base, uintptr(len(p)), uintptr(flags), uintptr(unsafe.Pointer(from)), uintptr(unsafe.Pointer(fromlen)));
+	return;
+}
+
+func sendto(s int, p []byte, flags int, to uintptr, addrlen _Socklen) (errno int) {
+	var base uintptr;
+	if len(p) > 0 {
+		base = uintptr(unsafe.Pointer(&p));
+	}
+	_, errno = socketcall(_SENDTO, uintptr(s), base, uintptr(len(p)), uintptr(flags), to, uintptr(addrlen));
+	return;
+}	
+
 func Listen(s int, n int) (errno int) {
-	var _ int;
 	_, errno = socketcall(_LISTEN, uintptr(s), uintptr(n), 0, 0, 0, 0);
 	return;
 }