sapreste dirmi che effetto hanno queste operazioni sui bits dei due byte lsv e msb? Dovrebbero servire a selezionare i bit dei tre campi ident, rtr e len, ma non riesco a capire come avviene sta ripartizione..

codice:
  msb = inb(RXID_REG);
  lsb = inb(RRTR_REG);

  package->ident = ((msb & 0xff) << 3) + ((lsb & 0xE0) >> 5);
  package->rtr = ((lsb & 0x10) >> 4);
  package->len = (lsb & 0x0F);