rmtodd@uokmax.UUCP (Richard Michael Todd) (12/10/87)
This shar file contains the new and revised header files in /usr/include.
(Actually not all of these are needed for PD Tar; some are ones that have
been patched for other reasons and have already appeared on comp.os.minix.
I just pulled out everything newer than the MINIX original distribution.)
Just unpack the shar. Some programs expect errno.h and stat.h to be in
/usr/include/sys, so cd to /usr/include and do 'ln errno.h sys/errno.h ;
ln stat.h sys/stat.h'.
--------------------------------- cut here --------------------------------
#!/bin/sh
# Shell archive created with Richard Todd's makeshar on Tue Dec 8 12:35:08 1987
mkdir sys
echo x - dirent.h
sed 's/^X//' >dirent.h << 'EOF'
X/*
X <dirent.h> -- definitions for SVR3 directory access routines
X
X last edit: 25-Apr-1987 D A Gwyn
X
X Prerequisite: <sys/types.h>
X*/
X
X#include <sys/dirent.h>
X
X#define DIRBUF 2048 /* buffer size for fs-indep. dirs */
X /* must in general be larger than the filesystem buffer size */
X
Xtypedef struct
X {
X int dd_fd; /* file descriptor */
X int dd_loc; /* offset in block */
X int dd_size; /* amount of valid data */
X char *dd_buf; /* -> directory block */
X } DIR; /* stream data from opendir() */
X
Xextern DIR *opendir();
Xextern struct dirent *readdir();
Xextern off_t telldir();
Xextern void seekdir();
Xextern void rewinddir();
Xextern int closedir();
X
X#ifndef NULL
X#define NULL 0 /* DAG -- added for convenience */
X#endif
EOF
echo x - fcntl.h
sed 's/^X//' >fcntl.h << 'EOF'
X#define O_RDONLY 0
X#define O_WRONLY 1
X#define O_RDWR 2
X
EOF
echo x - grp.h
sed 's/^X//' >grp.h << 'EOF'
Xstruct group {
X char *name;
X char *passwd;
X int gid;
X};
X#define gr_name name
X#define gr_gid gid
X#define gr_passwd passwd
EOF
echo x - pwd.h
sed 's/^X//' >pwd.h << 'EOF'
Xstruct passwd {
X char *pw_name;
X char *pw_passwd;
X int pw_uid;
X int pw_gid;
X char *pw_gecos;
X char *pw_dir;
X char *pw_shell;
X};
EOF
echo x - stdio.h
sed 's/^X//' >stdio.h << 'EOF'
X#define BUFSIZ 1024
X#define NFILES 20
X#define NULL 0
X#define EOF (-1)
X#define CMASK 0377
X
X#define READMODE 1
X#define WRITEMODE 2
X#define UNBUFF 4
X#define _EOF 8
X#define _ERR 16
X#define IOMYBUF 32
X#define PERPRINTF 64
X#define STRINGS 128
X
X#ifndef FILE
X
Xextern struct _io_buf {
X int _fd;
X int _count;
X int _flags;
X char *_buf;
X char *_ptr;
X} *_io_table[NFILES];
X
X
X#endif /* FILE */
X
X#define FILE struct _io_buf
X
X
X#define stdin (_io_table[0])
X#define stdout (_io_table[1])
X#define stderr (_io_table[2])
X
X#define getchar() getc(stdin)
X#define putchar(c) putc(c,stdout)
X#define fgetc(f) getc(f)
X#define fputc(c,f) putc(c,f)
X#define feof(p) (((p)->_flags & _EOF) != 0)
X#define ferror(p) (((p)->_flags & _ERR) != 0)
X#define fileno(p) ((p)->_fd)
X#define rewind(f) fseek(f, 0L, 0)
X#define testflag(p,x) ((p)->_flags & (x))
X
X/* If you want a stream to be flushed after each printf use:
X *
X * perprintf(stream);
X *
X * If you want to stop with this kind of buffering use:
X *
X * noperprintf(stream);
X */
X
X#define noperprintf(p) ((p)->_flags &= ~PERPRINTF)
X#define perprintf(p) ((p)->_flags |= PERPRINTF)
EOF
echo x - sys/dir.h
sed 's/^X//' >sys/dir.h << 'EOF'
X/*
X** /usr/include/sys/dir.h -- include file for structure of V7 style directory
X** Written 6-16-87 by RMTodd
X** Prerequisite:sys/types.h
X*/
X
X#define NAME_MAX 14
Xstruct direct {
X ino_t d_ino;
X char d_name[NAME_MAX];
X}; /* directory entry for MINIX (V7-style) filesystem */
X#define DIRSIZ NAME_MAX
EOF
echo x - sys/dirent.h
sed 's/^X//' >sys/dirent.h << 'EOF'
X/*
X <sys/dirent.h> -- file system independent directory entry (SVR3)
X
X last edit: 25-Apr-1987 D A Gwyn
X
X prerequisite: <sys/types.h>
X*/
X
Xstruct dirent /* data from getdents()/readdir() */
X {
X long d_ino; /* inode number of entry */
X off_t d_off; /* offset of disk directory entry */
X unsigned short d_reclen; /* length of this record */
X char d_name[1]; /* name of file */ /* non-POSIX */
X };
X
X/* The following nonportable ugliness could have been avoided by defining
X DIRENTSIZ and DIRENTBASESIZ to also have (struct dirent *) arguments. */
X#define DIRENTBASESIZ (((struct dirent *)0)->d_name \
X - (char *)&((struct dirent *)0)->d_ino)
X#define DIRENTSIZ( namlen ) ((DIRENTBASESIZ + sizeof(long) + (namlen)) \
X / sizeof(long) * sizeof(long))
X
X/* DAG -- the following was moved from <dirent.h>, which was the wrong place */
X#define MAXNAMLEN 512 /* maximum filename length */
X
X#ifndef NAME_MAX
X#define NAME_MAX (MAXNAMLEN - 1) /* DAG -- added for POSIX */
X#endif
EOF
echo x - sys/file.h
sed 's/^X//' >sys/file.h << 'EOF'
X/*
X** sys/file.h -- header file that contains the #defines for the
X** 3-argument open call (or actually our emulation of the BSD-style open).
X*/
X#define O_RDONLY 0 /* only allow read */
X#define O_WRONLY 1 /* only allow write */
X#define O_RDWR 2 /* both are allowed */
X/* O_NDELAY isn't implemented by the emulator. Does anyone really care? */
X#define O_NDELAY 4 /* don't block on opening devices that would
X ** block on open.
X */
X#define O_CREAT 8 /* create file if needed */
X#define O_EXCL 16 /* file cannot already exist */
X#define O_TRUNC 32 /* truncate file on open */
X
EOF
echo x - sys/types.h
sed 's/^X//' >sys/types.h << 'EOF'
X/*
X** /usr/include/sys/types.h -- include file declaring various types
X** commonly used by UNIX programs
X** Written 6-16-87 by RMTodd
X*/
Xtypedef unsigned short ino_t; /* inode number */
Xtypedef long off_t; /* offset into a file */
Xtypedef unsigned short dev_t;
X/* various #defines for manipulating dev_ts */
X#define makedev(maj,min) (((maj)<<8) | (min))
X#define minor(dev) ((dev)&0xff)
X#define major(dev) (((dev)>>8)&0xff)
X
Xtypedef long time_t;
EOFCC06067%UAFSYSB.BITNET@wiscvm.wisc.edu (Christopher Corke) (12/15/87)
The header for a message I received was "changes for PD-Tar, part 1 of 3". I never received parts 2 and 3. Does anyone know where they are???? Christopher C. Corke <CC06067@UAFSYSB> University of Arkansas (Postmaster) Department of Computing Services Acknowledge-To: <CC06067@UAFSYSB>