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
9p man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
9pcmdbuf
9pfid 9pfid(2): document Srv* in Req (thanks kjn) 2021-05-17 09:17:22 -07:00
9pfile
9pqueue
abort
abs
access
addpt addpt(2): fix inconsistency in description 2021-10-10 17:13:57 +00:00
aes
allocimage
aml
arg
arith3
assert
atof
auth minor man page typos 2021-04-08 21:42:31 +02:00
authsrv
avl
bin
bind
bio
blowfish
brk libc: use usize for sbrk() increment 2021-07-25 16:03:14 +00:00
cachechars
chacha
chdir
cleanname
color
complete
control
cputime arm64: use generic timer virtual counter for cycles() 2021-07-23 15:10:01 +00:00
ctime
ctype
debugger
des
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
disk
draw libdraw: add bezierpts 2021-01-09 12:20:49 -08:00
dsa
dup fix manpage references for dup(2), kproc(9) and panic(9). 2021-09-08 18:22:35 +00:00
ec
elgamal
encode libc: add encode(2) variants for custom alphabets 2021-07-03 20:03:17 +00:00
encrypt
errstr
event
exec opl3(1), exec(2): fix manpage typos (thanks umbraticus) 2021-04-27 16:08:06 +02:00
exits
exp
fauth
fcall
fd2path
fgetc
flate
floor
fmtinstall
fopen
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
frexp
fscanf
fversion
getcallerpc
getenv
getfcr
getfields
getpid
getuser
getwd
graphics mainly just spelling and typos 2021-11-01 20:49:43 +00:00
html
httpd
hypot
idn
intmap
ioproc man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
iounit
ip man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
isalpharune
json
keyboard
lock
mach
malloc
matrix
memdraw
memlayer
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
mouse
mp
muldiv
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
nusb nusb: Fix handling of interface altsetting. 2022-02-21 19:50:16 +00:00
object
open
perror
pipe
plumb
pool
postnote
prime
print
privalloc
procsetname
proto
pushtls man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
qball
qsort
quaternion
quote
rand
rc4
read
readcolmap
readv
regexp
remove
rendezvous
rsa libsec: add X509reqtoRSApub() function and return subject alt names in X509to*pub() name buffer 2021-07-04 22:00:24 +00:00
rune
runestrcat
salsa
sat
scribble
scsi
sechash
seek
segattach
segbrk
segflush
semacquire
setjmp
sin
sinh
sleep
stat
strcat strcat(2): 0 → nil in manpage in refrence to pointers 2021-07-12 21:42:39 +00:00
string
stringsize
subfont
symbol
thread
time
tmdate tmdate(2): "ttt" is a valid format too, mention it 2021-06-23 08:07:16 +00:00
tmpfile
ttf
venti
venti-cache man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
venti-client
venti-conn
venti-fcall
venti-file
venti-log man page fixes (thanks stuart morrow) 2021-08-24 21:45:37 +00:00
venti-mem
venti-packet
venti-server
venti-zero
wait
window