plan9fox/sys/man/2
cinap_lenrek 065d601916 nusb: Fix handling of interface altsetting.
The altsetting was handled only for a single endpoint
(per interface number), but has to be handled for each
endpoint (per interface *AND* altsetting number).

A multi function device (like a disk) can have
multiple interfaces, all with the same interface number
but varying altsetting numbers and each of these
interfaces would list distict endpoint configurations.

Multiple interfaces can even share some endpoints (they
use the same endpoint addresses), but
we still have to duplicate them for each
interface+altsetting number (as they'r part of
actually distict interfaces with distict endpoint
configurations).

It is also important to *NOT* make endpoints bi-directional
(dir == Eboth) when only one direction is used in a
interface/altsetting and the other direction in another.
This was the case for nusb/disk with some seagate drive
where endpoints where shared between the UAS and
usb storage class interface (but with distict altsettings).

The duplicate endpoints (as in using the same endpoint address)
are chained together by a next pointer and the head
is stored in Usbdev.ep[addr], where addr is the endpoint
address. These Ep structures will have distinct endpoint
numbers Ep.id (when they have conflicting types), but all
will share the endpoint address (lower 4 bits of the
endpoint number).

The consequence is that all of the endpoints configuration
(attributes, interval) is now stored in the Ep struct and
no more Altc struct is present.

A pointer to the Ep struct has to be passed to openep()
for it to configure the endpoint.

For the Iface struct, we will now create multiple of them:
one for each interface *AND* altsetting nunber,
chained together on a next pointer and the head being
stored in conf->iface[ifaceid].

--
cinap
2022-02-21 19:50:16 +00:00
..
0intro /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
9p man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
9pcmdbuf /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
9pfid 9pfid(2): document Srv* in Req (thanks kjn) 2021-05-17 09:17:22 -07:00
9pfile /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
9pqueue /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
abort /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
abs /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
access /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
addpt addpt(2): fix inconsistency in description 2021-10-10 17:13:57 +00:00
aes /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
allocimage /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
aml /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
arg /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
arith3 /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
assert /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
atof /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
auth minor man page typos 2021-04-08 21:42:31 +02:00
authsrv /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
avl avl(2): add avlmin/avlmax in synopsis 2018-06-08 16:37:39 +00:00
bin /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
bind /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
bio libbio: add aux pointer to bio 2020-11-01 11:42:54 -08:00
blowfish /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
brk libc: use usize for sbrk() increment 2021-07-25 16:03:14 +00:00
cachechars /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
chacha /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
chdir chdir(2): add reference to getwd(2) in SEE ALSO section 2020-08-25 20:51:24 +09:30
cleanname /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
color /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
complete /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
control /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
cputime arm64: use generic timer virtual counter for cycles() 2021-07-23 15:10:01 +00:00
ctime ctime(2): add tmdate(2) to "see also" 2020-11-18 20:11:55 +01:00
ctype /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
debugger /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
des /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
dial dial(2): dial returns an open data file, not a ctl one. also fixed little typo. 2021-07-25 18:27:59 +00:00
dirread /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
disk /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
draw libdraw: add bezierpts 2021-01-09 12:20:49 -08:00
dsa /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
dup fix manpage references for dup(2), kproc(9) and panic(9). 2021-09-08 18:22:35 +00:00
ec /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
elgamal /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
encode libc: add encode(2) variants for custom alphabets 2021-07-03 20:03:17 +00:00
encrypt /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
errstr /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
event fix bad function declarations in manpages 2019-04-09 18:34:17 +00:00
exec opl3(1), exec(2): fix manpage typos (thanks umbraticus) 2021-04-27 16:08:06 +02:00
exits /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
exp /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
fauth /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
fcall fix bad function declarations in manpages 2019-04-09 18:34:17 +00:00
fd2path /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
fgetc /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
flate flate(2): fix typos (thanks rgl) 2019-12-18 09:01:38 +10:30
floor /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
fmtinstall /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
fopen /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
fork fork(2): document new error behaviour when out of resources 2021-10-16 13:14:53 +00:00
fprintf libstdio: sync bits of vfprintf from APE 2021-02-19 23:04:09 +01:00
frame fix bad function declarations in manpages 2019-04-09 18:34:17 +00:00
frexp /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
fscanf /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
fversion /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
getcallerpc /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
getenv /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
getfcr /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
getfields /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
getpid libc: implement getppid() reading /proc/$pid/ppid instead of /dev/ppid 2020-12-19 15:15:38 +01:00
getuser libc: re-implement getuser() by stating /proc/$pid/status 2020-12-23 02:31:28 +01:00
getwd getwd(2): add reference to chdir(2) in SEE ALSO section 2020-08-25 20:51:38 +09:30
graphics mainly just spelling and typos 2021-11-01 20:49:43 +00:00
html /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
httpd /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
hypot /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
idn misc small manpage fixes 2018-10-28 00:05:05 +02:00
intmap /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
ioproc man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
iounit /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
ip man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
isalpharune /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
json /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
keyboard keyboard(2) spelling (thanks Amavect) 2018-09-22 09:41:16 +02:00
lock lock(2): fix typo 2018-03-23 11:34:39 +10:30
mach mach(2): fix byteswapping function signatures 2019-03-06 19:10:58 -08:00
malloc /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
matrix /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
memdraw memdraw(2): remove references to iprint() 2019-05-11 15:28:18 +00:00
memlayer fix bad function declarations in manpages 2019-04-09 18:34:17 +00:00
memory libc: change usize to 64-bit for amd64 and arm64, make memory(2) functions use usize 2021-07-25 15:54:22 +00:00
mktemp /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
mouse /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
mp mp(2): correct documentation of error handling (thanks LordCreepity) 2020-10-24 17:24:59 -07:00
muldiv /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
nan nan(2): document isInf(x, 0) matching +∞ and -∞ 2021-02-18 21:40:30 +01:00
ndb libndb: move mkptrname() into libndb to avoid duplication 2021-11-03 19:38:36 +00:00
notify notify(2): fix typo 2020-04-07 12:14:12 +09:30
nusb nusb: Fix handling of interface altsetting. 2022-02-21 19:50:16 +00:00
object /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
open /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
perror /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
pipe /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
plumb fix bad function declarations in manpages 2019-04-09 18:34:17 +00:00
pool fix bad function declarations in manpages 2019-04-09 18:34:17 +00:00
postnote /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
prime /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
print fix bad function declarations in manpages 2019-04-09 18:34:17 +00:00
privalloc /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
procsetname provide procsetname(2) manpage 2018-09-26 15:24:29 +02:00
proto /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
pushtls man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
qball /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
qsort /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
quaternion /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
quote /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
rand /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
rc4 /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
read /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
readcolmap /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
readv /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
regexp /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
remove /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
rendezvous /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
rsa libsec: add X509reqtoRSApub() function and return subject alt names in X509to*pub() name buffer 2021-07-04 22:00:24 +00:00
rune rune(2): complete source references 2019-09-04 02:41:22 +02:00
runestrcat /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
salsa /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
sat fix manpage cross references 2018-05-11 16:15:08 +02:00
scribble /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
scsi /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
sechash libsec: remove hash pickle functions, document ripemd160, cleanup sechash(2) manpage 2020-03-01 15:07:44 +01:00
seek /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
segattach /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
segbrk /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
segflush /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
semacquire /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
setjmp /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
sin /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
sinh /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
sleep /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
stat /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
strcat strcat(2): 0 → nil in manpage in refrence to pointers 2021-07-12 21:42:39 +00:00
string /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
stringsize /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
subfont /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
symbol fix bad function declarations in manpages 2019-04-09 18:34:17 +00:00
thread thread(2): fix description of when/why procexec(l) functions return 2019-12-19 17:12:15 +10:30
time /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
tmdate tmdate(2): "ttt" is a valid format too, mention it 2021-06-23 08:07:16 +00:00
tmpfile /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
ttf fix bad function declarations in manpages 2019-04-09 18:34:17 +00:00
venti /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
venti-cache man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
venti-client /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
venti-conn sys/src/libventi: implement vtreconn and vtredial functions 2019-09-06 11:54:44 -07:00
venti-fcall /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
venti-file /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
venti-log man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
venti-mem /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
venti-packet /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
venti-server /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
venti-zero /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
wait /sys/man/*/*: fix perms (sorry) 2017-12-11 19:58:06 -05:00
window fix bad function declarations in manpages 2019-04-09 18:34:17 +00:00