Annotation of researchv10no/cmd/dist/lib/lib.h, revision 1.1.1.1

1.1       root        1: #define MAXLINE 256
                      2: #define MAXNAME 20
                      3: 
                      4: struct tarbuf {
                      5:        char name[100];         /* strncpy format */
                      6:        char mode[8];           /* octal NUL-terminated */
                      7:        char uid[8];            /* octal */
                      8:        char gid[8];            /* octal */
                      9:        char size[12];          /* octal */
                     10:        char mtime[12];         /* octal */
                     11:        char chksum[8];         /* octal sum of header bytes; set to
                     12:                                   blanks while computing chksum */
                     13:        char typeflag[1];       /* see below */
                     14:        char linkname[100];     /* strncpy */
                     15:        char magic[6];          /* see below */
                     16:        char version[2];        /* see below */
                     17:        char uname[32];         /* strcpy format */
                     18:        char gname[32];         /* strcpy */
                     19:        char devmajor[8];       /* octal */
                     20:        char devminor[8];       /* octal */
                     21:        char prefix[155];       /* strncpy */
                     22:        char zeropad[12];
                     23: };
                     24: 
                     25: #define TSIZE (sizeof (struct tarbuf))
                     26: 
                     27: #define TMAGIC "ustar"         /* ustar\0 */
                     28: #define TMAGLEN 6
                     29: #define TVERSION "00"          /* strncpy, n == 2 */
                     30: #define TVERSLEN 2
                     31: 
                     32: /* typeflag values */
                     33: #define AREGTYPE '\0'          /* historical regular file */
                     34: #define REGTYPE '0'            /* regular file */
                     35: #define LNKTYPE '1'            /* hard link */
                     36: #define SYMTYPE '2'            /* reserved (symbolic link) */
                     37: #define CHRTYPE '3'            /* character special */
                     38: #define BLKTYPE '4'            /* block special */
                     39: #define DIRTYPE '5'            /* directory */
                     40: #define FIFOTYPE '6'           /* fifo special */
                     41: #define CONTTYPE '7'           /* reserved (socket?) */
                     42: 
                     43: /* mode bits */
                     44: #define TSUID 04000            /* set user id on execution */
                     45: #define TSGID 02000            /* set group id on execution */
                     46: #define TSVTX 01000            /* reserved */
                     47: #define TUREAD 00400           /* read by owner */
                     48: #define TUWRITE 00200          /* write by owner */
                     49: #define TUEXEC 00100           /* exec/search by owner */
                     50: #define TGREAD 00040           /* read by group */
                     51: #define TGWRITE 00020          /* write by group */
                     52: #define TGEXEC 00010           /* exec/search by group */
                     53: #define TOREAD 00004           /* read by other */
                     54: #define TOWRITE 00002          /* write by other */
                     55: #define TOEXEC 00001           /* exec/search by other */
                     56: #define TMASK 07777            /* mask of all bits (not in POSIX) */
                     57: 
                     58: #define TNAMEMAX 256
                     59: #define TLINKMAX 100
                     60: #define TUGNAMEMAX 31
                     61: 
                     62: /* incore equivalent of a tar buffer */
                     63: struct tarhdr {
                     64:        char name[TNAMEMAX + 1];
                     65:        int mode;
                     66:        int uid;
                     67:        int gid;
                     68:        long size;
                     69:        time_t mtime;
                     70:        char typeflag;
                     71:        char linkname[TLINKMAX + 1];
                     72:        char uname[TUGNAMEMAX + 1];
                     73:        char gname[TUGNAMEMAX + 1];
                     74:        int devmajor;
                     75:        int devminor;
                     76: };
                     77: 
                     78: /* system dependent */
                     79: extern void canonsys(char *sys, char cansys[]);
                     80: extern int lcreat(char *name, int mode);
                     81: 
                     82: /* chat.c */
                     83: extern int getline(char line[]);
                     84: extern long fdcopy(int dfd, int sfd, long size, unsigned long *crc);
                     85: extern int recvfile(int fd);
                     86: extern int sendfile(int fd);
                     87: 
                     88: /* chkperm.c */
                     89: extern int chkperm(int fd);
                     90: 
                     91: /* crc.c */
                     92: extern void crcinit(int *aux);
                     93: extern unsigned long crcincr(unsigned char *, size_t, unsigned long, int *);
                     94: 
                     95: /* id.c */
                     96: extern int gidnum(char *);
                     97: extern char *gidstr(int);
                     98: extern int uidnum(char *);
                     99: extern char *uidstr(int);
                    100: 
                    101: /* print.c */
                    102: extern char *prog;
                    103: extern void openlog(char *logfile);
                    104: extern void eprintf(char *fmt, ...);
                    105: extern void lprintf(char *fmt, ...);
                    106: 
                    107: /* quote.c */
                    108: void quote(char *qs, char *us);
                    109: void unquote(char *us, char *qs);
                    110: 
                    111: /* scanq.c */
                    112: extern void scanq(char *remsys, void (*func)(char *, int, char *));
                    113: 
                    114: /* sub.c */
                    115: struct sub {
                    116:        char *ostr;
                    117:        char *nstr;
                    118:        struct sub *next;
                    119: };
                    120: 
                    121: extern void addsub(struct sub **, char *, char *);
                    122: extern int sub(struct sub **, int, char [], int);
                    123: 
                    124: /* tarhdr.c */
                    125: extern int thdrget(struct tarhdr *hdr, struct tarbuf *buf);
                    126: extern int thdrput(struct tarbuf *buf, struct tarhdr *hdr);
                    127: 
                    128: /* tryperm.c */
                    129: extern int tryperm(int fd);
                    130: 
                    131: /* util.c */
                    132: extern void *xmalloc(size_t);
                    133: extern void *xrealloc(void *, size_t);
                    134: extern char *xstrdup(char *);
                    135: extern long fpcopy(FILE *, FILE *, long);
                    136: extern void discard(FILE *, long);

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.