-typedef struct s_dev_rec {
- int sync; /* synchronous */
- uint32_t File; /* File number, returned if sync set */
- uint32_t Block; /* Block number, returned if sync set */
- uint32_t VolSessionId; /* sequential id within this session */
- uint32_t VolSessionTime; /* session start time */
- int32_t FileIndex; /* sequential file number */
- int32_t Stream; /* stream number */
- uint32_t data_len; /* current record length */
- uint32_t remainder; /* remaining bytes to read/write */
- uint8_t ser_buf[RECHDR_LENGTH]; /* serialized record header goes here */
- char *data; /* Record data. This MUST be a memory pool item */
-} DEV_RECORD;
+struct BSR; /* satisfy forward reference */
+struct DEV_RECORD {
+ dlink link; /* link for chaining in read_record.c */
+ /* File and Block are always returned during reading
+ * and writing records.
+ */
+ uint32_t File; /* File number */
+ uint32_t Block; /* Block number */
+ uint32_t VolSessionId; /* sequential id within this session */
+ uint32_t VolSessionTime; /* session start time */
+ int32_t FileIndex; /* sequential file number */
+ int32_t Stream; /* stream number */
+ uint32_t data_len; /* current record length */
+ uint32_t remainder; /* remaining bytes to read/write */
+ uint32_t state; /* state bits */
+ BSR *bsr; /* pointer to bsr that matched */
+ uint8_t ser_buf[WRITE_RECHDR_LENGTH]; /* serialized record header goes here */
+ POOLMEM *data; /* Record data. This MUST be a memory pool item */
+ int32_t match_stat; /* bsr match status */
+};