char *cname = NULL, *sessinfop = NULL;
char *path = NULL, *pathbufp = NULL, **versionstrpp = NULL;
int flags = 0, fd = 0, setdtime = 0, reterror = 0;
- u_int urc;
- int rc;
- dm_ssize_t ssrc;
/* Definitions per the prototypes in dmport.h, in the same order. */
- rc = dm_clear_inherit(sid, hanp, hlen, token, attrnamep);
- rc = dm_create_by_handle(sid, dirhanp, dirhlen, token,
+ dm_clear_inherit(sid, hanp, hlen, token, attrnamep);
+ dm_create_by_handle(sid, dirhanp, dirhlen, token,
hanp, hlen, cname);
- rc = dm_create_session(oldsid, sessinfop, newsidp);
- rc = dm_create_userevent(sid, msglen, msgdatap, tokenp);
- rc = dm_destroy_session(sid);
- rc = dm_downgrade_right(sid, hanp, hlen, token);
- rc = dm_fd_to_handle(fd, hanpp, hlenp);
- rc = dm_find_eventmsg(sid, token, buflen, bufp, rlenp);
- rc = dm_get_allocinfo(sid, hanp, hlen,
+ dm_create_session(oldsid, sessinfop, newsidp);
+ dm_create_userevent(sid, msglen, msgdatap, tokenp);
+ dm_destroy_session(sid);
+ dm_downgrade_right(sid, hanp, hlen, token);
+ dm_fd_to_handle(fd, hanpp, hlenp);
+ dm_find_eventmsg(sid, token, buflen, bufp, rlenp);
+ dm_get_allocinfo(sid, hanp, hlen,
token, offp, nelem, extentp, nelemp);
- rc = dm_get_bulkall(sid, hanp, hlen, token, mask, attrnamep,
+ dm_get_bulkall(sid, hanp, hlen, token, mask, attrnamep,
locp, buflen, bufp, rlenp);
- rc = dm_get_bulkattr(sid, hanp, hlen, token, mask, locp, buflen,
+ dm_get_bulkattr(sid, hanp, hlen, token, mask, locp, buflen,
bufp, rlenp);
- rc = dm_get_config(hanp, hlen, flagname, retvalp);
- rc = dm_get_config_events(hanp, hlen, nelem, eventsetp, nelemp);
- rc = dm_get_dirattrs(sid, hanp, hlen, token, mask, locp, buflen,
+ dm_get_config(hanp, hlen, flagname, retvalp);
+ dm_get_config_events(hanp, hlen, nelem, eventsetp, nelemp);
+ dm_get_dirattrs(sid, hanp, hlen, token, mask, locp, buflen,
bufp, rlenp);
- rc = dm_get_dmattr(sid, hanp, hlen, token, attrnamep, buflen,
+ dm_get_dmattr(sid, hanp, hlen, token, attrnamep, buflen,
bufp, rlenp);
- rc = dm_get_eventlist(sid, hanp, hlen, token, nelem, eventsetp, nelemp);
- rc = dm_get_events(sid, maxmsgs, flags, buflen, bufp, rlenp);
- rc = dm_get_fileattr(sid, hanp, hlen, token, mask, statp);
- rc = dm_get_mountinfo(sid, hanp, hlen, token, buflen, bufp, rlenp);
- rc = dm_get_region(sid, hanp, hlen, token, nelem, regbufp, nelemp);
- rc = dm_getall_disp(sid, buflen, bufp, rlenp);
- rc = dm_getall_dmattr(sid, hanp, hlen, token, buflen, bufp, rlenp);
- rc = dm_getall_inherit(sid, hanp, hlen,
+ dm_get_eventlist(sid, hanp, hlen, token, nelem, eventsetp, nelemp);
+ dm_get_events(sid, maxmsgs, flags, buflen, bufp, rlenp);
+ dm_get_fileattr(sid, hanp, hlen, token, mask, statp);
+ dm_get_mountinfo(sid, hanp, hlen, token, buflen, bufp, rlenp);
+ dm_get_region(sid, hanp, hlen, token, nelem, regbufp, nelemp);
+ dm_getall_disp(sid, buflen, bufp, rlenp);
+ dm_getall_dmattr(sid, hanp, hlen, token, buflen, bufp, rlenp);
+ dm_getall_inherit(sid, hanp, hlen,
token, nelem, inheritbufp, nelemp);
- rc = dm_getall_sessions(nelem, sidbufp, nelemp);
- rc = dm_getall_tokens(sid, nelem, tokenbufp, nelemp);
- rc = dm_handle_cmp(hanp1, hlen1, hanp2, hlen2);
+ dm_getall_sessions(nelem, sidbufp, nelemp);
+ dm_getall_tokens(sid, nelem, tokenbufp, nelemp);
+ dm_handle_cmp(hanp1, hlen1, hanp2, hlen2);
dm_handle_free(hanp, hlen);
- urc = dm_handle_hash(hanp, hlen);
- rc = dm_handle_is_valid(hanp, hlen);
- rc = dm_handle_to_fshandle(hanp, hlen, fshanpp, fshlenp);
- rc = dm_handle_to_fsid(hanp, hlen, fsidp);
- rc = dm_handle_to_igen(hanp, hlen, igenp);
- rc = dm_handle_to_ino(hanp, hlen, inop);
- rc = dm_handle_to_path(dirhanp, dirhlen, targhanp, targhlen,
+ dm_handle_hash(hanp, hlen);
+ dm_handle_is_valid(hanp, hlen);
+ dm_handle_to_fshandle(hanp, hlen, fshanpp, fshlenp);
+ dm_handle_to_fsid(hanp, hlen, fsidp);
+ dm_handle_to_igen(hanp, hlen, igenp);
+ dm_handle_to_ino(hanp, hlen, inop);
+ dm_handle_to_path(dirhanp, dirhlen, targhanp, targhlen,
buflen, pathbufp, rlenp);
- rc = dm_init_attrloc(sid, hanp, hlen, token, locp);
- rc = dm_init_service(versionstrpp);
- rc = dm_make_handle(&fsid, &ino, &igen, hanpp, hlenp);
- rc = dm_make_fshandle(&fsid, hanpp, hlenp);
- rc = dm_mkdir_by_handle(sid, dirhanp, dirhlen, token,
+ dm_init_attrloc(sid, hanp, hlen, token, locp);
+ dm_init_service(versionstrpp);
+ dm_make_handle(&fsid, &ino, &igen, hanpp, hlenp);
+ dm_make_fshandle(&fsid, hanpp, hlenp);
+ dm_mkdir_by_handle(sid, dirhanp, dirhlen, token,
hanp, hlen, cname);
- rc = dm_move_event(sid, token, targetsid, rtokenp);
- rc = dm_obj_ref_hold(sid, token, hanp, hlen);
- rc = dm_obj_ref_query(sid, token, hanp, hlen);
- rc = dm_obj_ref_rele(sid, token, hanp, hlen);
- rc = dm_path_to_fshandle(path, hanpp, hlenp);
- rc = dm_path_to_handle(path, hanpp, hlenp);
- rc = dm_pending(sid, token, delay);
- rc = dm_probe_hole(sid, hanp, hlen, token, off, len, roffp, dmrlenp);
- rc = dm_punch_hole(sid, hanp, hlen, token, off, len);
- rc = dm_query_right(sid, hanp, hlen, token, rightp);
- rc = dm_query_session(sid, buflen, bufp, rlenp);
- ssrc = dm_read_invis(sid, hanp, hlen, token, off, len, bufp);
- rc = dm_release_right(sid, hanp, hlen, token);
- rc = dm_remove_dmattr(sid, hanp, hlen, token, setdtime, attrnamep);
- rc = dm_request_right(sid, hanp, hlen, token, uflags, right);
- rc = dm_respond_event(sid, token, response, reterror, buflen, respbufp);
- rc = dm_send_msg(sid, msgtype, buflen, bufp);
- rc = dm_set_disp(sid, hanp, hlen, token, eventsetp, maxevent);
- rc = dm_set_dmattr(sid, hanp, hlen,
+ dm_move_event(sid, token, targetsid, rtokenp);
+ dm_obj_ref_hold(sid, token, hanp, hlen);
+ dm_obj_ref_query(sid, token, hanp, hlen);
+ dm_obj_ref_rele(sid, token, hanp, hlen);
+ dm_path_to_fshandle(path, hanpp, hlenp);
+ dm_path_to_handle(path, hanpp, hlenp);
+ dm_pending(sid, token, delay);
+ dm_probe_hole(sid, hanp, hlen, token, off, len, roffp, dmrlenp);
+ dm_punch_hole(sid, hanp, hlen, token, off, len);
+ dm_query_right(sid, hanp, hlen, token, rightp);
+ dm_query_session(sid, buflen, bufp, rlenp);
+ dm_read_invis(sid, hanp, hlen, token, off, len, bufp);
+ dm_release_right(sid, hanp, hlen, token);
+ dm_remove_dmattr(sid, hanp, hlen, token, setdtime, attrnamep);
+ dm_request_right(sid, hanp, hlen, token, uflags, right);
+ dm_respond_event(sid, token, response, reterror, buflen, respbufp);
+ dm_send_msg(sid, msgtype, buflen, bufp);
+ dm_set_disp(sid, hanp, hlen, token, eventsetp, maxevent);
+ dm_set_dmattr(sid, hanp, hlen,
token, attrnamep, setdtime, buflen, bufp);
- rc = dm_set_eventlist(sid, hanp, hlen, token, eventsetp, maxevent);
- rc = dm_set_fileattr(sid, hanp, hlen, token, mask, attrp);
- rc = dm_set_inherit(sid, hanp, hlen, token, attrnamep, mode);
- rc = dm_set_region(sid, hanp, hlen, token, nelem, regbufp, exactflagp);
- rc = dm_set_return_on_destroy(sid, hanp, hlen,
+ dm_set_eventlist(sid, hanp, hlen, token, eventsetp, maxevent);
+ dm_set_fileattr(sid, hanp, hlen, token, mask, attrp);
+ dm_set_inherit(sid, hanp, hlen, token, attrnamep, mode);
+ dm_set_region(sid, hanp, hlen, token, nelem, regbufp, exactflagp);
+ dm_set_return_on_destroy(sid, hanp, hlen,
token, attrnamep, enable);
- rc = dm_symlink_by_handle(sid, dirhanp, dirhlen, token,
+ dm_symlink_by_handle(sid, dirhanp, dirhlen, token,
hanp, hlen, cname, path);
- rc = dm_sync_by_handle(sid, hanp, hlen, token);
- rc = dm_upgrade_right(sid, hanp, hlen, token);
- ssrc = dm_write_invis(sid, hanp, hlen, flags, token, off, len, bufp);
+ dm_sync_by_handle(sid, hanp, hlen, token);
+ dm_upgrade_right(sid, hanp, hlen, token);
+ dm_write_invis(sid, hanp, hlen, flags, token, off, len, bufp);
exit(0);
}
void cb_handler(); /* Posix aio callback handler. */
void noop_handler(); /* Delayop alarm, does nothing. */
-char *hms();
+char *hms(time_t t);
char *format_rw();
char *format_sds();
char *format_listio();
-char *check_file();
+char *check_file(char *file, int offset, int length, char *pattern,
+ int pattern_length, int patshift, int fsa);
int doio_fprintf(FILE *stream, char *format, ...);
-void doio_upanic();
+void doio_upanic(int mask);
void doio();
-void help();
+void help(FILE *stream);
void doio_delay();
int alloc_fd( char *, int );
int alloc_mem( int );
static int pid = -1;
int fd, nbytes, oflags;
/* REFERENCED */
- int signo;
int logged_write, rval, got_lock;
long offset, woffset = 0;
char *addr, pattern, *file, *msg;
* Misc variable setup
*/
- signo = 0;
nbytes = req->r_data.write.r_nbytes;
offset = req->r_data.write.r_offset;
pattern = req->r_data.write.r_pattern;
return(errbuf);
}
-struct status *
-sy_readv(req, sysc, fd, addr)
-struct io_req *req;
-struct syscall_info *sysc;
-int fd;
-char *addr;
-{
- struct status *sy_rwv();
- return sy_rwv(req, sysc, fd, addr, 0);
-}
-
-struct status *
-sy_writev(req, sysc, fd, addr)
-struct io_req *req;
-struct syscall_info *sysc;
-int fd;
-char *addr;
-{
- struct status *sy_rwv();
- return sy_rwv(req, sysc, fd, addr, 1);
-}
-
struct status *
sy_rwv(req, sysc, fd, addr, rw)
struct io_req *req;
return(status);
}
-char *
-fmt_readv(struct io_req *req, struct syscall_info *sy, int fd, char *addr)
-{
- static char errbuf[32768];
- char *cp;
-
- cp = errbuf;
- cp += sprintf(cp, "syscall: %s(%d, (iov on stack), 1)\n",
- sy->sy_name, fd);
- return(errbuf);
-}
-
struct status *
-sy_mmread(req, sysc, fd, addr)
-struct io_req *req;
+sy_readv(req, sysc, fd, addr)
+struct io_req *req;
struct syscall_info *sysc;
int fd;
char *addr;
{
- struct status *sy_mmrw();
- return sy_mmrw(req, sysc, fd, addr, 0);
+ return sy_rwv(req, sysc, fd, addr, 0);
}
struct status *
-sy_mmwrite(req, sysc, fd, addr)
-struct io_req *req;
+sy_writev(req, sysc, fd, addr)
+struct io_req *req;
struct syscall_info *sysc;
int fd;
char *addr;
{
- struct status *sy_mmrw();
- return sy_mmrw(req, sysc, fd, addr, 1);
+ return sy_rwv(req, sysc, fd, addr, 1);
+}
+
+char *
+fmt_readv(struct io_req *req, struct syscall_info *sy, int fd, char *addr)
+{
+ static char errbuf[32768];
+ char *cp;
+
+ cp = errbuf;
+ cp += sprintf(cp, "syscall: %s(%d, (iov on stack), 1)\n",
+ sy->sy_name, fd);
+ return(errbuf);
}
struct status *
return(status);
}
+struct status *
+sy_mmread(req, sysc, fd, addr)
+struct io_req *req;
+struct syscall_info *sysc;
+int fd;
+char *addr;
+{
+ return sy_mmrw(req, sysc, fd, addr, 0);
+}
+
+struct status *
+sy_mmwrite(req, sysc, fd, addr)
+struct io_req *req;
+struct syscall_info *sysc;
+int fd;
+char *addr;
+{
+ return sy_mmrw(req, sysc, fd, addr, 1);
+}
+
char *
fmt_mmrw(struct io_req *req, struct syscall_info *sy, int fd, char *addr)
{
#include "dataascii.h"
#include "random_range.h"
#include "databin.h"
-
-
-extern char *openflags2symbols();
-
-extern int parse_open_flags();
-extern int background();
-extern int forker();
-extern int datapidgen();
-extern void databingen();
-extern int datapidchk();
-extern int databinchk();
-extern int file_lock();
-
-int file_size();
-int check_write();
-int shrinkfile();
-int check_file();
-int growfile();
+#include "open_flags.h"
+#include "forker.h"
+#include "file_lock.h"
+
+extern int datapidgen(int pid, unsigned char *buffer, int bsize, int offset);
+extern void databingen(int mode, unsigned char *buffer, int bsize, int offset);
+extern int datapidchk(int pid, char *buffer, int bsize, int offset, char **errmsg);
+extern int databinchk(int mode, char *buffer, int bsize, int offset, char **errmsg);
+
+int file_size(int fd);
+int check_write(int fd, int cf_inter, char *filename, int mode);
+int shrinkfile(int fd, char *filename, int trunc_incr, int trunc_inter, int just_trunc);
+int check_file(int fd, int cf_inter, char *filename, int no_file_check);
+int growfile(int fd, char *file, int grow_incr, unsigned char *buf);
int cleanup();
int handle_error();
-int lkfile();
+int lkfile(int fd, int operation, int lklevel);
void usage();
void help();
-void prt_examples();
+void prt_examples(FILE *stream);
int set_sig();
void sig_handler();
static void notify_others();
-int pre_alloc();
+int pre_alloc(char *file, int fd, int size);
#define NEWIO 1 /* Use the tlibio.c functions */
if ( Debug > 3 ) {
printf("%s: %d DEBUG3 %s/%d: %d Open filename = %s, open flags = %#o %s\n",
Progname, Pid, __FILE__, __LINE__, Iter_cnt, filename, ret,
- openflags2symbols(ret, ",", NULL));
+ openflags2symbols(ret, ",", 0));
} else if ( Debug > 2 ) {
printf("%s: %d DEBUG3 %s/%d: %d filename = %s, open flags = %#o\n",
Progname, Pid, __FILE__, __LINE__, Iter_cnt, filename, ret);
* if we are dealing with a FIFO file.
*/
- if (growfile(fd, filename, grow_incr, Buffer) != 0 ) {
+ if (growfile(fd, filename, grow_incr, (unsigned char *)Buffer) != 0 ) {
handle_error();
lkfile(fd, LOCK_UN, LKLVL1); /* release lock */
close(fd);
if ( Debug > 0 )
printf("%s%s: %d DEBUG1 %s/%d: **fd:%d, lk:%d, offset:%d, sz:%d open flags:%#o %s\n",
Progname, TagName, Pid, __FILE__, __LINE__, fd, lockfile,
- Woffset, Grow_incr, Fileinfo.openflags, openflags2symbols(Fileinfo.openflags, ",", NULL));
+ Woffset, Grow_incr, Fileinfo.openflags, openflags2symbols(Fileinfo.openflags, ",", 0));
fflush(stderr);
return 1;