caller is allowed to perform the following 0-copy write operation:
1. call bdirect_read_prepare()
2. modify the data directly in the buffer returned (e.g. put \0's there)
3. call bflush() before any seek operation to let the fastbuf know
int bconfig(struct fastbuf *f, uns type, int data);
#define BCONFIG_IS_TEMP_FILE 0
+#define BCONFIG_CAN_OVERWRITE 1
/* Universal functions working on all fastbuf's */
case BCONFIG_IS_TEMP_FILE:
FB_FILE(f)->is_temp_file = value;
return 0;
+ case BCONFIG_CAN_OVERWRITE:
+ return 1;
default:
return -1;
}
case BCONFIG_IS_TEMP_FILE:
FB_MMAP(f)->is_temp_file = value;
return 0;
+ case BCONFIG_CAN_OVERWRITE:
+ return 0;
default:
return -1;
}