rem: TRACE(("scancode: %x, keydown: %s\n", buffer->scancode, buffer->is_keydown ? "true" : "false")); return status;
add: TRACE(("scancode: %x, keydown: %s\n", packet.scancode, packet.is_keydown ? "true" : "false"));  return user_memcpy(userBuffer, &packet, sizeof(at_kbd_io));
context: read_keyboard_packet(at_kbd_io *buffer){	status_t status;	status = acquire_sem_etc(sKeyboardSem, 1, B_CAN_INTERRUPT, 0);	if (status < B_OK)		return status;		status = cbuf_memcpy_from_chain((void *)buffer, keyboard_buf, 0, sizeof(at_kbd_io));	if (status < B_OK)		TRACE(("read_keyboard_packet(): error reading packet: %s\n", strerror(status)));	TRACE(("scancode: %x, keydown: %s\n", buffer->scancode, buffer->is_keydown ? "true" : "false"));	return status;}