HAMMER_BUFSIZE
static char buffer[HAMMER_BUFSIZE];
assert(bytes > 0 && bytes <= HAMMER_BUFSIZE); /* not HAMMER_XBUFSIZE */
if (count >= (CacheUse / HAMMER_BUFSIZE)) {
CacheMax += HAMMER_BUFSIZE * 512;
static int CacheMax = HAMMER_BUFSIZE * 1024;
if (UseReadAhead * HAMMER_BUFSIZE / size / 16) {
UseReadAhead = size / 16 / HAMMER_BUFSIZE;
CacheUse += HAMMER_BUFSIZE;
CacheUse -= HAMMER_BUFSIZE;
off += HAMMER_BUFSIZE;
for (node = (void *)ptr; (char *)node < ptr + HAMMER_BUFSIZE; ++node) {
chunk = HAMMER_BUFSIZE - ((int)data_offset & HAMMER_BUFMASK);
chunk = HAMMER_BUFSIZE -
len = HAMMER_BUFSIZE - ((int)buf_offset & HAMMER_BUFMASK);
assert(len <= HAMMER_BUFSIZE);
if (data_len > HAMMER_BUFSIZE) /* XXX */
data_len = HAMMER_BUFSIZE;
for (i = 0; i < HAMMER_BIGBLOCK_SIZE; i += HAMMER_BUFSIZE) {
return(__write(volume, volume->ondisk, 0, HAMMER_BUFSIZE));
HAMMER_BUFSIZE));
volume->ondisk = calloc(1, HAMMER_BUFSIZE);
if (pinfo.media_blksize > HAMMER_BUFSIZE ||
HAMMER_BUFSIZE % pinfo.media_blksize) {
buffer->ondisk = calloc(1, HAMMER_BUFSIZE);
bzero(buffer->ondisk, HAMMER_BUFSIZE);
raw_offset = base->raw_offset + ri * HAMMER_BUFSIZE;
raw_offset += HAMMER_BUFSIZE;
raw_offset += HAMMER_BUFSIZE;
isnew = ((i % HAMMER_BUFSIZE) == 0);
hi = (int)(zone2_offset / HAMMER_BUFSIZE) & HAMMER_BUFLISTMASK;
return(__read(volume, volume->ondisk, 0, HAMMER_BUFSIZE));
HAMMER_BUFSIZE));
HAMMER_BUFSIZE / 1024, str);
assert(sizeof(struct hammer_volume_ondisk) <= HAMMER_BUFSIZE);
ssize_t res = pread(hfs->fd, be->data, HAMMER_BUFSIZE,
if (res != HAMMER_BUFSIZE)
boff >> DEV_BSHIFT, HAMMER_BUFSIZE,
if (rv || rlen != HAMMER_BUFSIZE)
char buf[HAMMER_BUFSIZE];
if (dskread(buf, boff, HAMMER_BUFSIZE >> DEV_BSHIFT))
while (boff >= HAMMER_BUFSIZE) {
boff -= HAMMER_BUFSIZE;
roff += HAMMER_BUFSIZE;
dlen = HAMMER_BUFSIZE - ((boff + roff) & HAMMER_BUFMASK);
hfs->cache[i].data = malloc(HAMMER_BUFSIZE);
if (bytes <= HAMMER_BUFSIZE) {
if (bytes <= HAMMER_BUFSIZE) {
if (bytes < HAMMER_BUFSIZE && (next_offset & HAMMER_BUFMASK) == 0) {
if (!vm_paging_min_dnc(HAMMER_BUFSIZE / PAGE_SIZE)) {
#define HAMMER_MIN_VOL_JUNK (HAMMER_BUFSIZE * 16) /* 256 KB */
(((data_len) >= HAMMER_BUFSIZE) ? \
(((data_len) >= HAMMER_BUFSIZE) ? \
(HAMMER_BIGBLOCK_SIZE / HAMMER_BUFSIZE)
#define HAMMER_HBUFSIZE (HAMMER_BUFSIZE / 2)
#define HAMMER_BUFMASK (HAMMER_BUFSIZE - 1)
#define HAMMER_BUFSIZE64 ((uint64_t)HAMMER_BUFSIZE)
nvtruncbuf(ip->vp, 0, HAMMER_BUFSIZE, 0, 0);
leaf->data_len >= HAMMER_BUFSIZE) {
bp = getblk(volume->devvp, phys_offset, HAMMER_BUFSIZE, 0, 0);
return(_hammer_bread(hmp, buf_offset, HAMMER_BUFSIZE, 0, errorp, bufferp));
return(_hammer_bread(hmp, buf_offset, HAMMER_BUFSIZE, 1, errorp, bufferp));
HAMMER_BUFSIZE, 0, &error);
volume->io.bytes = HAMMER_BUFSIZE;
error = bread(volume->devvp, 0LL, HAMMER_BUFSIZE, &bp);
error = bread(volume->devvp, 0LL, HAMMER_BUFSIZE, &bp);
HAMMER_BUFSIZE);
base_offset += HAMMER_BUFSIZE;
bytes -= HAMMER_BUFSIZE;
base_offset += HAMMER_BUFSIZE;
zone2_offset += HAMMER_BUFSIZE;
bytes -= HAMMER_BUFSIZE;
if (offset + bytes > HAMMER_BUFSIZE) {
buffer = hammer_get_buffer(hmp, buf_offset, HAMMER_BUFSIZE,
if (hammer_undo_space(trans) < len + HAMMER_BUFSIZE*3)
return(HAMMER_BUFSIZE);
if (hammer_undo_space(trans) < len + HAMMER_BUFSIZE*3)
bzero(base, HAMMER_BUFSIZE);
for (i = 0; i < HAMMER_BUFSIZE; i += bytes) {
mp->mnt_stat.f_bfree = (bfree - breserved) / HAMMER_BUFSIZE;
mp->mnt_vstat.f_bfree = (bfree - breserved) / HAMMER_BUFSIZE;
mp->mnt_stat.f_iosize = HAMMER_BUFSIZE;
mp->mnt_stat.f_bsize = HAMMER_BUFSIZE;
mp->mnt_vstat.f_frsize = HAMMER_BUFSIZE;
mp->mnt_vstat.f_bsize = HAMMER_BUFSIZE;
vap->va_blocksize = HAMMER_BUFSIZE;
KKASSERT(HAMMER_BUFSIZE >= sizeof(struct hammer_volume_ondisk));