Well, to match up with Arduino shiftin/out API, here is shiftIn() that could be added to wirish_shift.cpp. One might also update io.h
uint8 shiftIn(uint8 dataPin, uint8 clockPin, uint8 bitOrder) {
uint8 value = 0;
uint8 i;
for (i = 0; i < 8; ++i) {
digitalWrite(clockPin, HIGH);
if (bitOrder == LSBFIRST)
value |= digitalRead(dataPin) << i;
else
value |= digitalRead(dataPin) << (7 - i);
digitalWrite(clockPin, LOW);
}
return value;
}