Browse Source

Plan 9 from Bell Labs 2004-07-08

David du Colombier 20 years ago
parent
commit
dc980bd50e
5 changed files with 53 additions and 10 deletions
  1. 2 2
      dist/replica/_plan9.db
  2. 2 2
      dist/replica/plan9.db
  3. 2 0
      dist/replica/plan9.log
  4. 14 6
      sys/man/2/ip
  5. 33 0
      sys/src/libip/bo.c

+ 2 - 2
dist/replica/_plan9.db

@@ -4853,7 +4853,7 @@ sys/man/2/hypot - 664 sys sys 944959693 302
 sys/man/2/intmap - 664 sys sys 1015091523 2622
 sys/man/2/intmap - 664 sys sys 1015091523 2622
 sys/man/2/ioproc - 664 sys sys 1030549010 3068
 sys/man/2/ioproc - 664 sys sys 1030549010 3068
 sys/man/2/iounit - 664 sys sys 1015091523 1001
 sys/man/2/iounit - 664 sys sys 1015091523 1001
-sys/man/2/ip - 664 sys sys 1015701015 6986
+sys/man/2/ip - 664 sys sys 1089213089 7136
 sys/man/2/isalpharune - 664 sys sys 1015091523 1059
 sys/man/2/isalpharune - 664 sys sys 1015091523 1059
 sys/man/2/keyboard - 664 sys sys 950892860 2065
 sys/man/2/keyboard - 664 sys sys 950892860 2065
 sys/man/2/lock - 664 sys sys 1048643958 4692
 sys/man/2/lock - 664 sys sys 1048643958 4692
@@ -11978,7 +11978,7 @@ sys/src/libhttpd/unallowed.c - 664 sys sys 1014930785 980
 sys/src/libhttpd/urlfmt.c - 664 sys sys 1014930785 425
 sys/src/libhttpd/urlfmt.c - 664 sys sys 1014930785 425
 sys/src/libhttpd/urlunesc.c - 664 sys sys 1014930785 995
 sys/src/libhttpd/urlunesc.c - 664 sys sys 1014930785 995
 sys/src/libip - 20000000775 sys sys 1016901402 0
 sys/src/libip - 20000000775 sys sys 1016901402 0
-sys/src/libip/bo.c - 664 sys sys 944961727 414
+sys/src/libip/bo.c - 664 sys sys 1089213099 811
 sys/src/libip/classmask.c - 664 sys sys 944961726 622
 sys/src/libip/classmask.c - 664 sys sys 944961726 622
 sys/src/libip/eipfmt.c - 664 sys sys 1014927942 2194
 sys/src/libip/eipfmt.c - 664 sys sys 1014927942 2194
 sys/src/libip/equivip.c - 664 sys sys 944961726 146
 sys/src/libip/equivip.c - 664 sys sys 944961726 146

+ 2 - 2
dist/replica/plan9.db

@@ -4853,7 +4853,7 @@ sys/man/2/hypot - 664 sys sys 944959693 302
 sys/man/2/intmap - 664 sys sys 1015091523 2622
 sys/man/2/intmap - 664 sys sys 1015091523 2622
 sys/man/2/ioproc - 664 sys sys 1030549010 3068
 sys/man/2/ioproc - 664 sys sys 1030549010 3068
 sys/man/2/iounit - 664 sys sys 1015091523 1001
 sys/man/2/iounit - 664 sys sys 1015091523 1001
-sys/man/2/ip - 664 sys sys 1015701015 6986
+sys/man/2/ip - 664 sys sys 1089213089 7136
 sys/man/2/isalpharune - 664 sys sys 1015091523 1059
 sys/man/2/isalpharune - 664 sys sys 1015091523 1059
 sys/man/2/keyboard - 664 sys sys 950892860 2065
 sys/man/2/keyboard - 664 sys sys 950892860 2065
 sys/man/2/lock - 664 sys sys 1048643958 4692
 sys/man/2/lock - 664 sys sys 1048643958 4692
@@ -11978,7 +11978,7 @@ sys/src/libhttpd/unallowed.c - 664 sys sys 1014930785 980
 sys/src/libhttpd/urlfmt.c - 664 sys sys 1014930785 425
 sys/src/libhttpd/urlfmt.c - 664 sys sys 1014930785 425
 sys/src/libhttpd/urlunesc.c - 664 sys sys 1014930785 995
 sys/src/libhttpd/urlunesc.c - 664 sys sys 1014930785 995
 sys/src/libip - 20000000775 sys sys 1016901402 0
 sys/src/libip - 20000000775 sys sys 1016901402 0
-sys/src/libip/bo.c - 664 sys sys 944961727 414
+sys/src/libip/bo.c - 664 sys sys 1089213099 811
 sys/src/libip/classmask.c - 664 sys sys 944961726 622
 sys/src/libip/classmask.c - 664 sys sys 944961726 622
 sys/src/libip/eipfmt.c - 664 sys sys 1014927942 2194
 sys/src/libip/eipfmt.c - 664 sys sys 1014927942 2194
 sys/src/libip/equivip.c - 664 sys sys 944961726 146
 sys/src/libip/equivip.c - 664 sys sys 944961726 146

+ 2 - 0
dist/replica/plan9.log

@@ -15835,3 +15835,5 @@
 1089084659 6 c 386/bin/auth/secstored - 775 sys sys 1089084068 194348
 1089084659 6 c 386/bin/auth/secstored - 775 sys sys 1089084068 194348
 1089084659 7 c 386/bin/aux/vga - 775 sys sys 1089084069 300531
 1089084659 7 c 386/bin/aux/vga - 775 sys sys 1089084069 300531
 1089084659 8 c sys/man/2/9p - 664 sys sys 1089084170 15221
 1089084659 8 c sys/man/2/9p - 664 sys sys 1089084170 15221
+1089214223 0 c sys/man/2/ip - 664 sys sys 1089213089 7136
+1089214223 1 c sys/src/libip/bo.c - 664 sys sys 1089213099 811

+ 14 - 6
sys/man/2/ip

@@ -1,6 +1,6 @@
 .TH IP 2
 .TH IP 2
 .SH NAME
 .SH NAME
-eipfmt, parseip, parseipmask, v4parseip, v4parsecidr, parseether, myipaddr, myetheraddr, maskip, equivip, defmask, isv4, v4tov6, v6tov4, nhgetl, nhgets, hnputl, hnputs, ptclbsum, readipifc \- Internet protocol
+eipfmt, parseip, parseipmask, v4parseip, v4parsecidr, parseether, myipaddr, myetheraddr, maskip, equivip, defmask, isv4, v4tov6, v6tov4, nhgetv, nhgetl, nhgets, hnputv, hnputl, hnputs, ptclbsum, readipifc \- Internet protocol
 .SH SYNOPSIS
 .SH SYNOPSIS
 .B #include <u.h>
 .B #include <u.h>
 .br
 .br
@@ -57,12 +57,18 @@ ushort	nhgets(void *p)
 uint	nhgetl(void *p)
 uint	nhgetl(void *p)
 .PP
 .PP
 .B
 .B
+uvlong	nhgetv(void *p)
+.PP
+.B
 void	hnputs(void *p, ushort v)
 void	hnputs(void *p, ushort v)
 .PP
 .PP
 .B
 .B
 void	hnputl(void *p, uint v)
 void	hnputl(void *p, uint v)
 .PP
 .PP
 .B
 .B
+void	hnputv(void *p, uvlong v)
+.PP
+.B
 ushort	ptclbsum(uchar *a, int n)
 ushort	ptclbsum(uchar *a, int n)
 .PP
 .PP
 .B
 .B
@@ -211,14 +217,16 @@ converts the V6 address,
 to a V4 address and puts the result in
 to a V4 address and puts the result in
 .IR v4ip .
 .IR v4ip .
 .PP
 .PP
-.I Hnputs
-and
+.IR Hnputs ,
 .I hnputl
 .I hnputl
-are used to store 16-bit and 32-bit integers into IP big-endian form.
-.I Nhgets
 and
 and
+.I hnputv
+are used to store 16-bit, 32-bit, and 64-bit integers, respectively, into IP big-endian form.
+.IR Nhgets ,
 .I nhgetl
 .I nhgetl
-convert big-endian 2 and 4 byte quantities into integers.
+and
+.I nhgetv
+convert big-endian 2, 4 and 8 byte quantities into integers (or uvlongs).
 .PP
 .PP
 .I Pctlbsum
 .I Pctlbsum
 returns the one's complement checksum used in IP protocols, typically invoked as
 returns the one's complement checksum used in IP protocols, typically invoked as

+ 33 - 0
sys/src/libip/bo.c

@@ -2,6 +2,21 @@
 #include <libc.h>
 #include <libc.h>
 #include <ip.h>
 #include <ip.h>
 
 
+void
+hnputv(void *p, uvlong v)
+{
+	uchar *a;
+
+	a = p;
+	a[0] = v>>56;
+	a[1] = v>>48;
+	a[2] = v>>40;
+	a[3] = v>>32;
+	a[4] = v>>24;
+	a[5] = v>>16;
+	a[6] = v>>8;
+	a[7] = v;
+}
 
 
 void
 void
 hnputl(void *p, uint v)
 hnputl(void *p, uint v)
@@ -25,6 +40,24 @@ hnputs(void *p, ushort v)
 	a[1] = v;
 	a[1] = v;
 }
 }
 
 
+uvlong
+nhgetv(void *p)
+{
+	uchar *a;
+	uvlong v;
+
+	a = p;
+	v = (uvlong)a[0]<<56;
+	v |= (uvlong)a[1]<<48;
+	v |= (uvlong)a[2]<<40;
+	v |= (uvlong)a[3]<<32;
+	v |= a[4]<<24;
+	v |= a[5]<<16;
+	v |= a[6]<<8;
+	v |= a[7]<<0;
+	return v;
+}
+
 uint
 uint
 nhgetl(void *p)
 nhgetl(void *p)
 {
 {