Ver código fonte

more efficient

main
Frank 5 anos atrás
pai
commit
0ce9412e25
Nenhuma conta vinculada ao e-mail do autor do commit
1 arquivos alterados com 6 adições e 17 exclusões
  1. +6
    -17
      teensy4/usb.c

+ 6
- 17
teensy4/usb.c Ver arquivo

completestatus &= endpointN_notify_mask; completestatus &= endpointN_notify_mask;
#if 1 #if 1
if (completestatus) { if (completestatus) {
int s;


// transmit: // transmit:
s = 0;
uint32_t tx = completestatus >> 16; uint32_t tx = completestatus >> 16;
while(tx) {
while (tx) {
int p=__builtin_ctz(tx); int p=__builtin_ctz(tx);
if (p==0) {
run_callbacks(endpoint_queue_head + s * 2 + 1);
p = 1;
}
tx >>= p;
s += p;
};
run_callbacks(endpoint_queue_head + p * 2 + 1);
tx &= ~(1<<p);
}


// receive: // receive:
s = 0;
uint32_t rx = completestatus & 0xffff; uint32_t rx = completestatus & 0xffff;
while(rx) { while(rx) {
int p=__builtin_ctz(rx); int p=__builtin_ctz(rx);
if (p==0) {
run_callbacks(endpoint_queue_head + s * 2);
p = 1;
}
rx >>= p;
s += p;
run_callbacks(endpoint_queue_head + p * 2);
rx &= ~(1<<p);
}; };
} }
#else #else

Carregando…
Cancelar
Salvar