mars-nwe/include/nwfile.h
2011-11-13 17:37:22 +01:00

70 lines
2.7 KiB
C

/* nwfile.h 10-Nov-99 */
#ifndef _NWFILE_H_
#define _NWFILE_H_
#include "extpipe.h"
typedef struct {
int task; /* for which task */
int fd; /* filehandle from system open/creat */
long offd; /* actual file offset */
uint8 *p_mmap; /* for use with mmap */
int size_mmap;
time_t tmodi; /* modification TIME */
int modified; /* is file modified / written */
FILE_PIPE *f; /* for PIPE */
int fh_flags; /* 2 = PIPE */
/* 4 = don't reuse after close */
/* 0x20 = readonly */
int st_dev; /* device */
int st_ino; /* inode */
char fname[256]; /* UNIX filename */
int volume; /* Volume */
int inuse; /* used for multiple open of filehandle */
int access; /* open access */
} FILE_HANDLE;
/* fh_flags */
#define FH_IS_PIPE 0x01
#define FH_IS_PIPE_COMMAND 0x02
#define FH_DO_NOT_REUSE 0x04
#define FH_IS_READONLY 0x20 /* filesystem is readonly */
#define FH_OPENED_RO 0x40 /* is opened RO */
extern void sig_bus_mmap(int rsig);
extern void init_file_module(int task);
extern int file_creat_open(int volume, uint8 *unixname,
struct stat *stbuff,
int attrib, int access, int creatmode, int task);
extern int nw_set_fdate_time(uint32 fhandle, uint8 *datum, uint8 *zeit);
extern int nw_close_file(int fhandle, int reset_reuse, int task);
extern int nw_commit_file(int fhandle);
extern uint8 *file_get_unix_name(int fhandle);
extern int nw_read_file(int fhandle, uint8 *data, int size, uint32 offset);
extern int nw_seek_file(int fhandle, int modus);
extern int nw_write_file(int fhandle, uint8 *data, int size, uint32 offset);
extern int nw_server_copy(int qfhandle, uint32 qoffset,
int zfhandle, uint32 zoffset,
uint32 size);
extern int nw_log_physical_record(int fhandle, uint32 offset, uint32 size, uint16 timeout, int do_lock);
extern int fd_2_fname(int fhandle, char *buf, int bufsize);
extern FILE_HANDLE *fd_2_fh(int fhandle);
extern int get_nwfd(int fhandle);
extern void log_file_module(FILE *f);
extern int nw_get_count_open_files(uint8 *handlebuf, uint32 offset);
extern int nw_log_logical_record(int lock_flag,
int timeout,
int len,
uint8 *data);
extern void dump_locks(int dev, int inode, int fd, FILE *f);
#endif