diff --git a/sys/dev/isp/isp_freebsd.h b/sys/dev/isp/isp_freebsd.h
index 28002720a7e0..903df0fe319e 100644
--- a/sys/dev/isp/isp_freebsd.h
+++ b/sys/dev/isp/isp_freebsd.h
@@ -80,8 +80,16 @@ typedef struct {
 	u_int32_t	orig_datalen;
 	u_int32_t	bytes_xfered;
 	u_int32_t	last_xframt;
-	u_int32_t	tag;
+	u_int32_t	tag	: 16,
+			lun	: 13,	/* not enough */
+			state	: 3;
 } atio_private_data_t;
+#define	ATPD_STATE_FREE			0
+#define	ATPD_STATE_ATIO			1
+#define	ATPD_STATE_CAM			2
+#define	ATPD_STATE_CTIO			3
+#define	ATPD_STATE_LAST_CTIO		4
+#define	ATPD_STATE_PDON			5
 
 typedef struct tstate {
 	struct tstate *next;
@@ -91,6 +99,7 @@ typedef struct tstate {
 	lun_id_t lun;
 	int bus;
 	u_int32_t hold;
+	int atio_count;
 } tstate_t;
 
 #define	LUN_HASH_SIZE			32