* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <stdlib.h>
#include <assert.h>
#include <byteswap.h>
{
struct ust_buffer *ustbuf = buf->bufstruct_mem;
- long write_offset = local_read(&ustbuf->offset);
- long consumed_offset = atomic_long_read(&ustbuf->consumed);
+ long write_offset = uatomic_read(&ustbuf->offset);
+ long consumed_offset = uatomic_read(&ustbuf->consumed);
long i_subbuf;
void *tmp;
/* commit_seq is the offset in the buffer of the end of the last sequential commit.
* Bytes beyond this limit cannot be recovered. This is a free-running counter. */
- long commit_seq = local_read(&ustbuf->commit_seq[i_subbuf]);
+ long commit_seq = uatomic_read(&ustbuf->commit_seq[i_subbuf]);
unsigned long valid_length = buf->subbuf_size;
long n_subbufs_order = get_count_order(buf->n_subbufs);
/* If it was, we only check the data_size. This is the amount of valid data at
* the beginning of the subbuffer. */
valid_length = header->data_size;
+ DBG("writing full subbuffer (%d) with valid_length = %ld", i_subbuf, valid_length);
}
else {
/* If the subbuffer was not fully written, then we don't check data_size because
*/
valid_length = commit_seq & (buf->subbuf_size-1);
+ DBG("writing unfull subbuffer (%d) with valid_length = %ld", i_subbuf, valid_length);
header->data_size = valid_length;
header->sb_size = PAGE_ALIGN(valid_length);
assert(i_subbuf == (last_subbuf % buf->n_subbufs));