aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/venti/part.c
diff options
context:
space:
mode:
authorrsc <devnull@localhost>2005-01-18 05:25:09 +0000
committerrsc <devnull@localhost>2005-01-18 05:25:09 +0000
commitadbb83845c5d3cb02343d7613cfb8385aa909909 (patch)
tree6f2b79ae89f59d014cdbfb6a5bf5ded94bf775fa /src/cmd/venti/part.c
parentd338028eeb45434dab651466dcd664091517e087 (diff)
downloadplan9port-adbb83845c5d3cb02343d7613cfb8385aa909909.tar.gz
plan9port-adbb83845c5d3cb02343d7613cfb8385aa909909.tar.bz2
plan9port-adbb83845c5d3cb02343d7613cfb8385aa909909.zip
remove venti for now
Diffstat (limited to 'src/cmd/venti/part.c')
-rw-r--r--src/cmd/venti/part.c132
1 files changed, 0 insertions, 132 deletions
diff --git a/src/cmd/venti/part.c b/src/cmd/venti/part.c
deleted file mode 100644
index 66e6c79a..00000000
--- a/src/cmd/venti/part.c
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "stdinc.h"
-#include "dat.h"
-#include "fns.h"
-
-#define trace 1
-
-u32int maxblocksize;
-int readonly;
-
-Part*
-initpart(char *name, int writable)
-{
- Part *part;
- Dir *dir;
- int how;
-
- part = MKZ(Part);
- part->name = estrdup(name);
- if(!writable && readonly)
- how = OREAD;
- else
- how = ORDWR;
- part->fd = open(name, how);
- if(part->fd < 0){
- if(how == ORDWR)
- part->fd = open(name, OREAD);
- if(part->fd < 0){
- freepart(part);
- seterr(EOk, "can't open partition='%s': %r", name);
- return nil;
- }
- fprint(2, "warning: %s opened for reading only\n", name);
- }
- dir = dirfstat(part->fd);
- if(dir == nil){
- freepart(part);
- seterr(EOk, "can't stat partition='%s': %r", name);
- return nil;
- }
- part->size = dir->length;
- part->blocksize = 0;
- free(dir);
- return part;
-}
-
-void
-freepart(Part *part)
-{
- if(part == nil)
- return;
- close(part->fd);
- free(part->name);
- free(part);
-}
-
-void
-partblocksize(Part *part, u32int blocksize)
-{
- if(part->blocksize)
- sysfatal("resetting partition=%s's block size", part->name);
- part->blocksize = blocksize;
- if(blocksize > maxblocksize)
- maxblocksize = blocksize;
-}
-
-int
-writepart(Part *part, u64int addr, u8int *buf, u32int n)
-{
- long m, mm, nn;
-
- qlock(&stats.lock);
- stats.diskwrites++;
- stats.diskbwrites += n;
- qunlock(&stats.lock);
-
- if(addr > part->size || addr + n > part->size){
- seterr(ECorrupt, "out of bounds write to partition='%s'", part->name);
- return -1;
- }
-if(trace) print("write %s %lud at %llud\n", part->name, n, addr);
- for(nn = 0; nn < n; nn += m){
- mm = n - nn;
- if(mm > MaxIo)
- mm = MaxIo;
- m = pwrite(part->fd, &buf[nn], mm, addr + nn);
- if(m != mm){
- if(m < 0){
- seterr(EOk, "can't write partition='%s': %r", part->name);
- return -1;
- }
- logerr(EOk, "truncated write to partition='%s' n=%ld wrote=%ld", part->name, mm, m);
- }
- }
- return 0;
-}
-
-int
-readpart(Part *part, u64int addr, u8int *buf, u32int n)
-{
- long m, mm, nn;
- int i;
-
- qlock(&stats.lock);
- stats.diskreads++;
- stats.diskbreads += n;
- qunlock(&stats.lock);
-
- if(addr > part->size || addr + n > part->size){
- seterr(ECorrupt, "out of bounds read from partition='%s': addr=%lld n=%d size=%lld", part->name, addr, n, part->size);
- return -1;
- }
-if(trace) print("read %s %lud at %llud\n", part->name, n, addr);
- for(nn = 0; nn < n; nn += m){
- mm = n - nn;
- if(mm > MaxIo)
- mm = MaxIo;
- m = -1;
- for(i=0; i<4; i++) {
- m = pread(part->fd, &buf[nn], mm, addr + nn);
- if(m == mm)
- break;
- }
- if(m != mm){
- if(m < 0){
- seterr(EOk, "can't read partition='%s': %r", part->name);
- return -1;
- }
- logerr(EOk, "warning: truncated read from partition='%s' n=%ld read=%ld", part->name, mm, m);
- }
- }
- return 0;
-}