libjio.h | libjio.h | |||
---|---|---|---|---|
skipping to change at line 15 | skipping to change at line 15 | |||
*/ | */ | |||
#ifndef _LIBJIO_H | #ifndef _LIBJIO_H | |||
#define _LIBJIO_H | #define _LIBJIO_H | |||
#include <stdint.h> | #include <stdint.h> | |||
#include <stdio.h> | #include <stdio.h> | |||
#include <sys/types.h> | #include <sys/types.h> | |||
#include <sys/uio.h> | #include <sys/uio.h> | |||
#include <pthread.h> | #include <pthread.h> | |||
#include <unistd.h> | ||||
/* Check if we're using Large File Support - otherwise refuse to build. | ||||
* Otherwise, we would allow applications not using LFS to link with the | ||||
* library (which uses LFS) and that's just begging for problems. There sho | ||||
uld | ||||
* be a portable way for the C library to do some of this for us, but until | ||||
I | ||||
* find one, this is the best we can do */ | ||||
#if (!defined _FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS != 64) | ||||
#error "You must compile your application with Large File Support" | ||||
#endif | ||||
#ifdef __cplusplus | #ifdef __cplusplus | |||
extern "C" { | extern "C" { | |||
#endif | #endif | |||
/* logical structures */ | /* logical structures */ | |||
/* the main file structure */ | /* the main file structure */ | |||
struct jfs { | struct jfs { | |||
int fd; /* main file descriptor */ | int fd; /* main file descriptor */ | |||
char *name; /* and its name */ | char *name; /* and its name */ | |||
int jdirfd; /* journal directory file descriptor */ | int jdirfd; /* journal directory file descriptor */ | |||
int jfd; /* journal's lock file descriptor */ | int jfd; /* journal's lock file descriptor */ | |||
unsigned int *jmap; /* journal's lock file mmap area */ | unsigned int *jmap; /* journal's lock file mmap area */ | |||
uint32_t flags; /* journal flags */ | uint32_t flags; /* journal flags */ | |||
struct jlinger *ltrans; /* lingered transactions */ | struct jlinger *ltrans; /* lingered transactions */ | |||
pthread_mutex_t ltlock; /* lingered transactions' lock */ | ||||
pthread_mutex_t lock; /* a soft lock used in some operations */ | pthread_mutex_t lock; /* a soft lock used in some operations */ | |||
}; | }; | |||
/* a single operation */ | /* a single operation */ | |||
struct joper { | struct joper { | |||
int locked; /* is the region is locked? */ | int locked; /* is the region is locked? */ | |||
off_t offset; /* operation's offset */ | off_t offset; /* operation's offset */ | |||
size_t len; /* data length */ | size_t len; /* data length */ | |||
void *buf; /* data */ | void *buf; /* data */ | |||
size_t plen; /* previous data length */ | size_t plen; /* previous data length */ | |||
End of changes. 2 change blocks. | ||||
0 lines changed or deleted | 13 lines changed or added | |||