]> git.gag.com Git - debian/amanda/blobdiff - docs/vtape-api.txt
Imported Upstream version 2.4.5
[debian/amanda] / docs / vtape-api.txt
diff --git a/docs/vtape-api.txt b/docs/vtape-api.txt
new file mode 100644 (file)
index 0000000..e1637f4
--- /dev/null
@@ -0,0 +1,65 @@
+
+         Chapter 25. Virtual Tape API
+Prev  Part V. Technical Background  Next
+
+-------------------------------------------------------------------------------
+
+Chapter 25. Virtual Tape API
+
+
+Stefan G. Weichinger
+
+XML-conversion
+AMANDA Core Team
+<sgw@amanda.org>
+
+Note
+
+Refer to http://www.amanda.org/docs/vtape-api.html for the current version of
+this document.
+The upper level AMANDA code (including some of the other tape_xxx routines)
+calls the following routines which implement a virtual tape table:
+
+* int tape_access(filename, mode) Acts like access(2) on possibly virtual
+  devices
+* int tape_open(filename, mode) Acts like open(2) on possibly virtual devices
+* int tape_stat(filename, buf) Acts like stat(2) on possibly virtual devices
+* int tapefd_close(tapefd) Acts like close(2) on possibly virtual devices
+* int tapefd_fsf(tapefd, count) Forward skips the (possibly virtual) device.
+* int tapefd_read(tapefd, buffer, count) Reads a block from the (possibly
+  virtual) device.
+* int tapefd_rewind(tapefd) Reads a block from a (possibly virtual) device.
+* void tapefd_resetofs(tapefd) Uses lseek() tricks to reset the write/read
+  offset counter on a virtual tape device.
+* int tapefd_unload(tapefd) Unloads the media from a (possibly virtual) device.
+* int tapefd_status(tapefd) pr- ints status of the (possibly virtual) device to
+  standard output.
+* int tapefd_weof(tapefd, count) writes a filemark/moves to the next file on a
+  device for writing.
+* int tapefd_write(tapefd, buffer, count) writes a block of data to a (possibly
+  virtual) device.
+
+For a tape type xxx, the following routines must be provided, and entered -
+into the table "vtable" in tape-src/tapeio.c:
+
+* int xxx_tape_access(filename, mode)
+* int xxx_tape_open(filename, mode)
+* int xxx_tape_stat(filename, buf)
+* int xxx_tapefd_close(xxx_tapefd)
+* int xxx_tapefd_fsf(xxx_tapefd, count)
+* int xxx_tapefd_read(xxx_tapefd, buffer, count)
+* int xxx_tapefd_rewind(xxx_tapefd)
+* void xxx_tapefd_resetofs(xxx_tapefd)
+* int xxx_tapefd_unload(xxx_tapefd)
+* int xxx_tapefd_status(xxx_tapefd)
+* int xxx_tapefd_weof(xxx_tapefd, count)
+* int xxx_tapefd_write(xxx_tapefd, buffer, count)
+
+Along with a prefix string which will identify the type. The initial vtape
+layer has two types "plain" and "rait" (Redundant Array of Inexpensive Tapes)
+but we hope to add a "rmt" (remote tape client), and possibly "dvd" types soon.
+-------------------------------------------------------------------------------
+
+Prev                              Up                                     Next
+Chapter 24. AMANDA Security API  Home  Chapter 26. Using Kerberos with AMANDA
+