Plan 9 from Bell Labs’s /usr/web/sources/extra/9hist/port/lib.h

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


## diffname port/lib.h 1990/0227
## diff -e /dev/null /n/bootesdump/1990/0227/sys/src/9/mips/lib.h
0a
/*
 * functions (possibly) linked in, complete, from libc.
 */

/*
 * mem routines
 */
extern	void	*memccpy(void*, void*, int, long);
extern	void	*memset(void*, int, long);
extern	int	memcmp(void*, void*, long);
extern	void	*memcpy(void*, void*, long);
extern	void	*memchr(void*, int, long);

/*
 * string routines
 */
extern	char	*strcat(char*, char*);
extern	char	*strchr(char*, char);
extern	int	strcmp(char*, char*);
extern	char	*strcpy(char*, char*);
extern	char	*strncat(char*, char*, long);
extern	char	*strncpy(char*, char*, long);
extern	int	strncmp(char*, char*, long);
extern	long	strlen(char*);

/*
 * print routines
 */

#define	FUNSIGN	4
#define	FSHORT	2
#define	FLONG	1

typedef struct Op	Op;
struct Op
{
	char	*p;
	char	*ep;
	void	*argp;
	int	f1;
	int	f2;
	int	f3;
};
extern	void	strconv(char*, Op*, int, int);
extern	int	numbconv(Op*, int);
extern	char	*donprint(char*, char*, char*, void*);
extern	int	fmtinstall(char, int (*)(Op*));
extern	int	sprint(char*, char*, ...);
extern	int	print(char*, ...);

/*
 * one-of-a-kind
 */
extern	long	strtol(char*, char**, int);
extern	ulong	strtoul(char*, char**, int);
extern	long	end;

/*
 * Syscall data structures
 */

#define	MORDER	0x0003	/* mask for bits defining order of mounting */
#define	MREPL	0x0000	/* mount replaces object */
#define	MBEFORE	0x0001	/* mount goes before others in union directory */
#define	MAFTER	0x0002	/* mount goes after others in union directory */
#define	MCREATE	0x0004	/* permit creation in mounted directory */
#define	MMASK	0x0007	/* all bits on */

#define	OREAD	0	/* open for read */
#define	OWRITE	1	/* write */
#define	ORDWR	2	/* read and write */
#define	OEXEC	3	/* execute, == read but check execute permission */
#define	OTRUNC	16	/* or'ed in (except for exec), truncate file first */

typedef struct Error	Error;
typedef struct Dir	Dir;
typedef struct Waitmsg	Waitmsg;

struct Error
{
	int	type;
	int	dev;
	int	code;
};

#define	ERRLEN	64
#define	DIRLEN	64
#define	NAMELEN	28
struct Dir
{
	char	name[NAMELEN];
	long	qid;
	long	mode;
	long	atime;
	long	mtime;
	Length;
	short	uid;
	short	gid;
	short	type;
	short	dev;
};

struct Waitmsg
{
	int	pid;		/* of loved one */
	int	status;		/* unused; a placeholder */
	ulong	time[3];	/* of loved one */
	char	msg[ERRLEN];
};
.
## diffname port/lib.h 1990/06111
## diff -e /n/bootesdump/1990/0227/sys/src/9/mips/lib.h /n/bootesdump/1990/06111/sys/src/9/mips/lib.h
46d
## diffname port/lib.h 1990/0614
## diff -e /n/bootesdump/1990/06111/sys/src/9/mips/lib.h /n/bootesdump/1990/0614/sys/src/9/mips/lib.h
45a
extern	char	*doprint(char*, char*, char*, void*);
.
## diffname port/lib.h 1990/08141
## diff -e /n/bootesdump/1990/0614/sys/src/9/mips/lib.h /n/bootesdump/1990/08141/sys/src/9/mips/lib.h
73a
#define	OCEXEC	32	/* or'ed in, close on exec */
#define	ORCLOSE	64	/* or'ed in, remove on close */
.
## diffname port/lib.h 1990/11211
## diff -e /n/bootesdump/1990/08141/sys/src/9/mips/lib.h /n/bootesdump/1990/11211/sys/src/9/mips/lib.h
99,100d
94,95c
	char	uid[NAMELEN];
	char	gid[NAMELEN];
	Qid	qid;
	ulong	mode;
.
88,90d
83,85c
	ulong	path;
	ulong	vers;
.
81c
#define	ERRLEN	64
#define	DIRLEN	116
#define	NAMELEN	28

struct Qid
.
77c
typedef struct Qid	Qid;
.
## diffname port/lib.h 1991/0318
## diff -e /n/bootesdump/1991/0201/sys/src/9/mips/lib.h /n/bootesdump/1991/0318/sys/src/9/power/lib.h
11c
extern	void	*memmove(void*, void*, long);
.
## diffname port/lib.h 1991/0424
## diff -e /n/bootesdump/1991/0318/sys/src/9/power/lib.h /n/bootesdump/1991/0424/sys/src/9/power/lib.h
50c
extern  int	atoi(char *);
.
## diffname port/lib.h 1991/0717
## diff -e /n/bootesdump/1991/0424/sys/src/9/power/lib.h /n/bootesdump/1991/0717/sys/src/9/power/lib.h
76a
#define	NCONT	0	/* continue after note */
#define	NTERM	1	/* terminate after note */

.
## diffname port/lib.h 1991/0718
## diff -e /n/bootesdump/1991/0717/sys/src/9/power/lib.h /n/bootesdump/1991/0718/sys/src/9/power/lib.h
78c
#define	NDFLT	1	/* terminate after note */
.
## diffname port/lib.h 1991/1011
## diff -e /n/bootesdump/1991/0718/sys/src/9/power/lib.h /n/bootesdump/1991/1011/sys/src/9/power/lib.h
57d
55a
extern	long	etext;
extern	long	edata;
.
50c

.
24a
extern	int	atoi(char*);
.
## diffname port/lib.h 1991/1207
## diff -e /n/bootesdump/1991/1011/sys/src/9/power/lib.h /n/bootesdump/1991/1207/sys/src/9/power/lib.h
86,88c
#define	ERRLEN		64
#define	DIRLEN		116
#define	NAMELEN		28
#define DESKEYLEN	7
.
## diffname port/lib.h 1991/1223
## diff -e /n/bootesdump/1991/1207/sys/src/9/power/lib.h /n/bootesdump/1991/1223/sys/src/9/power/lib.h
27a
 * rune routines
 */
extern	int	runetochar(char*, Rune*);
extern	int	chartorune(Rune*, char*);
extern	int	countrune(char*);

/*
.
## diffname port/lib.h 1992/0213
## diff -e /n/bootesdump/1991/1223/sys/src/9/power/lib.h /n/bootesdump/1992/0213/sys/src/9/power/lib.h
32a
extern	char*	utfrune(char*, long);
.
## diffname port/lib.h 1992/0309
## diff -e /n/bootesdump/1992/0213/sys/src/9/power/lib.h /n/bootesdump/1992/0309/sys/src/9/power/lib.h
121,123c
	char	pid[12];	/* of loved one */
	char	time[3*12];	/* of loved one and descendants */
.
## diffname port/lib.h 1992/0319
## diff -e /n/bootesdump/1992/0309/sys/src/9/power/lib.h /n/bootesdump/1992/0319/sys/src/9/power/lib.h
65,67c
extern	char	etext[];
extern	char	edata[];
extern	char	end[];
.
## diffname port/lib.h 1992/0805
## diff -e /n/bootesdump/1992/0321/sys/src/9/power/lib.h /n/bootesdump/1992/0805/sys/src/9/port/lib.h
33a
extern	int	utflen(char*);
.
## diffname port/lib.h 1992/0826
## diff -e /n/bootesdump/1992/0805/sys/src/9/port/lib.h /n/bootesdump/1992/0826/sys/src/9/port/lib.h
35a
extern	int	abs(int);

.
## diffname port/lib.h 1992/1023
## diff -e /n/bootesdump/1992/0826/sys/src/9/port/lib.h /n/bootesdump/1992/1023/sys/src/9/port/lib.h
55a
typedef void*	Fconv;	/* to allow fcall.h to compile */
.
## diffname port/lib.h 1992/1024
## diff -e /n/bootesdump/1992/1023/sys/src/9/port/lib.h /n/bootesdump/1992/1024/sys/src/9/port/lib.h
60c
extern	int	fmtinstall(int, int (*)(void*, Fconv*));
.
55,58c
	int	chr;
} Fconv;
extern	void	strconv(char*, Fconv*);
extern	int	numbconv(void*, Fconv*);
.
49,51c
	char*	out;		/* pointer to next output */
	char*	eout;		/* pointer to end */
.
41,47c
typedef
struct
.
32d
26a
enum
{
	UTFmax		= 3,		/* maximum bytes per rune */
	Runesync	= 0x80,		/* cannot represent part of a UTF sequence (<) */
	Runeself	= 0x80,		/* rune and UTF sequences are the same (<) */
	Runeerror	= 0x80,		/* decoding error in UTF */
};

.
## diffname port/lib.h 1993/0330
## diff -e /n/bootesdump/1992/1024/sys/src/9/port/lib.h /n/bootesdump/1993/0330/sys/src/9/port/lib.h
102d
## diffname port/lib.h 1993/0501
## diff -e /n/bootesdump/1993/0330/sys/src/9/port/lib.h /n/fornaxdump/1993/0501/sys/src/brazil/port/lib.h
82c
#define MRECOV	0x0008	/* perform recovery if mount channel is lost */
#define	MMASK	0x000F	/* all bits on */
.
76d
72a

.
29,32c
	UTFmax		= 3,	/* maximum bytes per rune */
	Runesync	= 0x80,	/* cannot represent part of a UTF sequence */
	Runeself	= 0x80,	/* rune and UTF sequences are the same (<) */
	Runeerror	= 0x80,	/* decoding error in UTF */
.
## diffname port/lib.h 1993/1014
## diff -e /n/fornaxdump/1993/0501/sys/src/brazil/port/lib.h /n/fornaxdump/1993/1014/sys/src/brazil/port/lib.h
83c
#define MCACHE	0x0010	/* cache some data */
#define	MMASK	0x001F	/* all bits on */
.
## diffname port/lib.h 1995/0115
## diff -e /n/fornaxdump/1993/1014/sys/src/brazil/port/lib.h /n/fornaxdump/1995/0115/sys/src/brazil/port/lib.h
95a
#define	NSAVE	2	/* clear note but hold state */
#define	NRSTR	3	/* restore saved state */
.
## diffname port/lib.h 1995/0117
## diff -e /n/fornaxdump/1995/0115/sys/src/brazil/port/lib.h /n/fornaxdump/1995/0117/sys/src/brazil/port/lib.h
62a
extern	int	snprint(char*, int, char*, ...);
.
## diffname port/lib.h 1996/0214
## diff -e /n/fornaxdump/1995/0117/sys/src/brazil/port/lib.h /n/fornaxdump/1996/0214/sys/src/brazil/port/lib.h
59,61c
extern	int	numbconv(va_list*, Fconv*);
extern	char	*doprint(char*, char*, char*, va_list);
extern	int	fmtinstall(int, int (*)(va_list*, Fconv*));
.
## diffname port/lib.h 1999/0218
## diff -e /n/fornaxdump/1996/0214/sys/src/brazil/port/lib.h /n/emeliedump/1999/0218/sys/src/brazil/port/lib.h
70a
extern	vlong	strtovl(char*, char**, int);
.
## diffname port/lib.h 1999/0629
## diff -e /n/emeliedump/1999/0218/sys/src/brazil/port/lib.h /n/emeliedump/1999/0629/sys/src/brazil/port/lib.h
84,85c
#define	MRECOV	0x0008	/* perform recovery if mount channel is lost */
#define	MCACHE	0x0010	/* cache some data */
.
## diffname port/lib.h 1999/0710
## diff -e /n/emeliedump/1999/0629/sys/src/brazil/port/lib.h /n/emeliedump/1999/0710/sys/src/brazil/port/lib.h
71c
extern	vlong	strtoll(char*, char**, int);
extern	uvlong	strtoull(char*, char**, int);
.
## diffname port/lib.h 1999/0714
## diff -e /n/emeliedump/1999/0710/sys/src/brazil/port/lib.h /n/emeliedump/1999/0714/sys/src/brazil/port/lib.h
68a
ulong	getcallerpc(void*);
.
## diffname port/lib.h 1999/0716
## diff -e /n/emeliedump/1999/0714/sys/src/brazil/port/lib.h /n/emeliedump/1999/0716/sys/src/brazil/port/lib.h
69c
extern	char*	cleanname(char*);
extern	ulong	getcallerpc(void*);
.
## diffname port/lib.h 1999/0810
## diff -e /n/emeliedump/1999/0716/sys/src/brazil/port/lib.h /n/emeliedump/1999/0810/sys/src/brazil/port/lib.h
18a
extern	char	*strrchr(char*, char);
.
## diffname port/lib.h 1999/0819
## diff -e /n/emeliedump/1999/0810/sys/src/brazil/port/lib.h /n/emeliedump/1999/0819/sys/src/brazil/port/lib.h
42a
extern	int	runelen(long);
.
## diffname port/lib.h 1999/1105
## diff -e /n/emeliedump/1999/0819/sys/src/brazil/port/lib.h /n/emeliedump/1999/1105/sys/src/9/port/lib.h
89d
## diffname port/lib.h 2000/0308
## diff -e /n/emeliedump/1999/1105/sys/src/9/port/lib.h /n/emeliedump/2000/0308/sys/src/9/port/lib.h
79a
extern	int	getfields(char*, char**, int, int, char*);
.
## diffname port/lib.h 2000/0706
## diff -e /n/emeliedump/2000/0308/sys/src/9/port/lib.h /n/emeliedump/2000/0706/sys/src/9/port/lib.h
64a
extern	char*	seprint(char*, char*, char*, ...);
.
## diffname port/lib.h 2000/1111
## diff -e /n/emeliedump/2000/0706/sys/src/9/port/lib.h /n/emeliedump/2000/1111/sys/src/9/port/lib.h
25a
extern	char*	strstr(char*, char*);
.
## diffname port/lib.h 2000/1215
## diff -e /n/emeliedump/2000/1111/sys/src/9/port/lib.h /n/emeliedump/2000/1215/sys/src/9/port/lib.h
131c
	vlong	length;
.
## diffname port/lib.h 2001/0418
## diff -e /n/emeliedump/2000/1215/sys/src/9/port/lib.h /n/emeliedump/2001/0418/sys/src/9/port/lib.h
27a
extern	int	tokenize(char*, char**, int);
.
## diffname port/lib.h 2001/0527
## diff -e /n/emeliedump/2001/0418/sys/src/9/port/lib.h /n/emeliedump/2001/0527/sys/src/9/port/lib.h
141c
	char	msg[64];	/* compatibility BUG */
.
123,135c
typedef
struct Dir {
	/* system-modified data */
	ushort	type;	/* server type */
	uint	dev;	/* server subtype */
	/* file data */
	Qid	qid;	/* unique id from server */
	ulong	mode;	/* permissions */
	ulong	atime;	/* last read time */
	ulong	mtime;	/* last write time */
	vlong	length;	/* file length: see <u.h> */
	char	*name;	/* last element of path */
	char	*uid;	/* owner name */
	char	*gid;	/* group name */
	char	*muid;	/* last modifier name */
} Dir;
.
120a
	uchar	type;
.
119c
	vlong	path;
.
116a
/* bits in Qid.type */
#define QTDIR		0x80		/* type bit for directories */
#define QTAPPEND	0x40		/* type bit for append only files */
#define QTEXCL		0x20		/* type bit for exclusive use files */
#define QTMOUNT		0x10		/* type bit for mounted channel */
#define QTFILE		0x00		/* plain file */

/* bits in Dir.mode */
#define DMDIR		0x80000000	/* mode bit for directories */
#define DMAPPEND	0x40000000	/* mode bit for append only files */
#define DMEXCL		0x20000000	/* mode bit for exclusive use files */
#define DMMOUNT		0x10000000	/* mode bit for mounted channel */
#define DMREAD		0x4		/* mode bit for read permission */
#define DMWRITE		0x2		/* mode bit for write permission */
#define DMEXEC		0x1		/* mode bit for execute permission */

.
113,115c
#define	ERRMAX			128	/* max length of error string */
#define	KNAMELEN		28	/* max length of name held in kernel */
.
102a
#define OEXCL   0x1000	/* or'ed in, exclusive create */
.
83a
extern	int	tokenize(char*, char**, int);
.
28c
extern	int	fullrune(char*, int);
.
21a
extern	char *strecpy(char*, char*, char*);
.
## diffname port/lib.h 2001/0621
## diff -e /n/emeliedump/2001/0527/sys/src/9/port/lib.h /n/emeliedump/2001/0621/sys/src/9/port/lib.h
76a
extern	void*	getsp(void);
extern	void*	getlink(void);

.
## diffname port/lib.h 2001/0712
## diff -e /n/emeliedump/2001/0621/sys/src/9/port/lib.h /n/emeliedump/2001/0712/sys/src/9/port/lib.h
77,78d
## diffname port/lib.h 2001/0807
## diff -e /n/emeliedump/2001/0712/sys/src/9/port/lib.h /n/emeliedump/2001/0807/sys/src/9/port/lib.h
158c
};
.
143d
## diffname port/lib.h 2001/0819
## diff -e /n/emeliedump/2001/0807/sys/src/9/port/lib.h /n/emeliedump/2001/0819/sys/src/9/port/lib.h
163a
};

struct Waitmsg
{
	int	pid;	/* of loved one */
	ulong	time[3];	/* of loved one and descendants */
	char	msg[ERRMAX];	/* actually variable-size in user mode */
.
159c
struct OWaitmsg
.
124a
#define QTAUTH		0x08		/* type bit for authentication file */
.
114a
typedef struct OWaitmsg	OWaitmsg;
.
## diffname port/lib.h 2001/0820
## diff -e /n/emeliedump/2001/0819/sys/src/9/port/lib.h /n/emeliedump/2001/0820/sys/src/9/port/lib.h
125d
## diffname port/lib.h 2001/0905
## diff -e /n/emeliedump/2001/0820/sys/src/9/port/lib.h /n/emeliedump/2001/0905/sys/src/9/port/lib.h
124a
#define QTMOUNT		0x10		/* type bit for mounted channel */
.
## diffname port/lib.h 2001/1212
## diff -e /n/emeliedump/2001/0905/sys/src/9/port/lib.h /n/emeliedump/2001/1212/sys/src/9/port/lib.h
97c
#define	MMASK	0x0017	/* all bits on */
.
## diffname port/lib.h 2001/1213
## diff -e /n/emeliedump/2001/1212/sys/src/9/port/lib.h /n/emeliedump/2001/1213/sys/src/9/port/lib.h
86a
extern	int	dec64(uchar*, int, char*, int);
.
## diffname port/lib.h 2002/0217
## diff -e /n/emeliedump/2001/1213/sys/src/9/port/lib.h /n/emeliedump/2002/0217/sys/src/9/port/lib.h
70c
extern	int	vsnprint(char*, int, char*, va_list);
extern	int	sprint(char*, char*, ...);

extern	int	fmtinstall(int c, int (*f)(Fmt*));
extern	int	quotefmtinstall(void);
extern	int	fmtit(Fmt *f, char *fmt, ...);
extern	int	fmtstrcpy(Fmt *f, char *s);

#pragma	varargck	argpos	fmtit	2
#pragma	varargck	argpos	print	1
#pragma	varargck	argpos	seprint	3
#pragma	varargck	argpos	snprint	3
#pragma	varargck	argpos	sprint	2
.
68a
extern	char*	vseprint(char*, char*, char*, va_list);
.
53,67c
typedef struct Fmt	Fmt;
typedef int (*Fmts)(Fmt*);
struct Fmt{
	uchar	runes;			/* output buffer is runes or chars? */
	void	*start;			/* of buffer */
	void	*to;			/* current place in the buffer */
	void	*stop;			/* end of the buffer; overwritten if flush fails */
	int	(*flush)(Fmt *);	/* called when to == stop */
	void	*farg;			/* to make flush a closure */
	int	nfmt;			/* num chars formatted so far */
	va_list	args;			/* args passed to dofmt */
	int	r;			/* % format Rune */
	int	width;
	int	prec;
	ulong	flags;
};
extern	int	print(char*, ...);
.
21,24c
extern	char*	strcpy(char*, char*);
extern	char*	strecpy(char*, char*, char*);
extern	char*	strncat(char*, char*, long);
extern	char*	strncpy(char*, char*, long);
.
17,19c
extern	char*	strcat(char*, char*);
extern	char*	strchr(char*, char);
extern	char*	strrchr(char*, char);
.
8,12c
extern	void*	memccpy(void*, void*, int, ulong);
extern	void*	memset(void*, int, ulong);
extern	int	memcmp(void*, void*, ulong);
extern	void*	memmove(void*, void*, ulong);
extern	void*	memchr(void*, int, ulong);
.
## diffname port/lib.h 2002/0220
## diff -e /n/emeliedump/2002/0217/sys/src/9/port/lib.h /n/emeliedump/2002/0220/sys/src/9/port/lib.h
81,85c
#pragma	varargck	argpos	fmtprint	2
#pragma	varargck	argpos	print		1
#pragma	varargck	argpos	seprint		3
#pragma	varargck	argpos	snprint		3
#pragma	varargck	argpos	sprint		2
.
78,79c
extern	int	fmtprint(Fmt*, char*, ...);
extern	int	fmtstrcpy(Fmt*, char*);
.
76c
extern	int	fmtinstall(int, int (*)(Fmt*));
.

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].