plugins/xor.c

Go to the documentation of this file.
00001 
00007 #include <stdio.h>
00008 #ifdef HAVE_CONFIG_H
00009 #include <config.h>
00010 #endif
00011 #include "mysqlfs-plugin.h"
00012 
00026 static unsigned buffer_size = 0;
00027 static unsigned char ver[3];
00028 
00029 static char *dummy_identity()
00030 {
00031     static char v[50];
00032     snprintf (v, sizeof(v), "dummy-xor %d.%d.%d buffer=%u", ver[0], ver[1], ver[2], buffer_size);
00033 
00034     return v;
00035 }
00036 
00037 static void dummy_setblocksize(unsigned size)
00038 {
00039     buffer_size = size;
00040 }
00041 
00061 static int dummy_readwrite(unsigned char* buf, size_t size, off_t offset)
00062 {
00063     size_t i;
00064 
00065     for (i = 0; i < size; i++) buf[i] ^= 0x5A;
00066     return 0;
00067 }
00068 
00069 mysqlfs_plugin xor_entry =
00070 {
00071     .identity = dummy_identity,
00072     .setblocksize = dummy_setblocksize,
00073     .read = dummy_readwrite,
00074     .write = dummy_readwrite
00075 };
00076 
00077 
00087 extern mysqlfs_plugin* mysqlfs_init(unsigned char version_major, unsigned char version_minor, unsigned char version_point)
00088 {
00089     /* make a quick copy of the version for reporting back */
00090     ver[0] = version_major;
00091     ver[1] = version_minor;
00092     ver[2] = version_point;
00093     return &xor_entry;
00094 }

Generated on Sun Jul 12 20:25:26 2009 for mysqlfs by  doxygen 1.4.7