plan 9 kernel history: overview | file list | diff list

1999/0819/port/lib.h (diff list | history)

port/lib.h on 1990/0227
1990/0227    
/* 
 * 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); 
1991/0318    
extern	void	*memmove(void*, void*, long); 
1990/0227    
extern	void	*memchr(void*, int, long); 
 
/* 
 * string routines 
 */ 
extern	char	*strcat(char*, char*); 
extern	char	*strchr(char*, char); 
1999/0810    
extern	char	*strrchr(char*, char); 
1990/0227    
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*); 
1991/1011    
extern	int	atoi(char*); 
1990/0227    
 
1992/1024    
enum 
{ 
1993/0501    
	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 */ 
1992/1024    
}; 
 
1990/0227    
/* 
1991/1223    
 * rune routines 
 */ 
extern	int	runetochar(char*, Rune*); 
extern	int	chartorune(Rune*, char*); 
1992/0213    
extern	char*	utfrune(char*, long); 
1992/0805    
extern	int	utflen(char*); 
1999/0819    
extern	int	runelen(long); 
1991/1223    
 
1992/0826    
extern	int	abs(int); 
 
1991/1223    
/* 
1990/0227    
 * print routines 
 */ 
1992/1024    
typedef 
struct 
1990/0227    
{ 
1992/1024    
	char*	out;		/* pointer to next output */ 
	char*	eout;		/* pointer to end */ 
1990/0227    
	int	f1; 
	int	f2; 
	int	f3; 
1992/1024    
	int	chr; 
} Fconv; 
extern	void	strconv(char*, Fconv*); 
1996/0214    
extern	int	numbconv(va_list*, Fconv*); 
extern	char	*doprint(char*, char*, char*, va_list); 
extern	int	fmtinstall(int, int (*)(va_list*, Fconv*)); 
1990/0227    
extern	int	sprint(char*, char*, ...); 
1995/0117    
extern	int	snprint(char*, int, char*, ...); 
1990/0227    
extern	int	print(char*, ...); 
1991/1011    
 
1990/0227    
/* 
 * one-of-a-kind 
 */ 
1999/0716    
extern	char*	cleanname(char*); 
extern	ulong	getcallerpc(void*); 
1990/0227    
extern	long	strtol(char*, char**, int); 
extern	ulong	strtoul(char*, char**, int); 
1999/0710    
extern	vlong	strtoll(char*, char**, int); 
extern	uvlong	strtoull(char*, char**, int); 
1992/0319    
extern	char	etext[]; 
extern	char	edata[]; 
extern	char	end[]; 
1993/0501    
 
1990/0227    
/* 
 * 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 */ 
1999/0629    
#define	MRECOV	0x0008	/* perform recovery if mount channel is lost */ 
#define	MCACHE	0x0010	/* cache some data */ 
1993/1014    
#define	MMASK	0x001F	/* all bits on */ 
1990/0227    
 
#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 */ 
1990/08141    
#define	OCEXEC	32	/* or'ed in, close on exec */ 
#define	ORCLOSE	64	/* or'ed in, remove on close */ 
1990/0227    
 
1991/0717    
#define	NCONT	0	/* continue after note */ 
1991/0718    
#define	NDFLT	1	/* terminate after note */ 
1995/0115    
#define	NSAVE	2	/* clear note but hold state */ 
#define	NRSTR	3	/* restore saved state */ 
1991/0717    
 
1990/11211    
typedef struct Qid	Qid; 
1990/0227    
typedef struct Dir	Dir; 
typedef struct Waitmsg	Waitmsg; 
 
1991/1207    
#define	ERRLEN		64 
#define	DIRLEN		116 
#define	NAMELEN		28 
1990/11211    
 
struct Qid 
1990/0227    
{ 
1990/11211    
	ulong	path; 
	ulong	vers; 
1990/0227    
}; 
 
struct Dir 
{ 
	char	name[NAMELEN]; 
1990/11211    
	char	uid[NAMELEN]; 
	char	gid[NAMELEN]; 
	Qid	qid; 
	ulong	mode; 
1990/0227    
	long	atime; 
	long	mtime; 
	Length; 
	short	type; 
	short	dev; 
}; 
 
struct Waitmsg 
{ 
1992/0309    
	char	pid[12];	/* of loved one */ 
	char	time[3*12];	/* of loved one and descendants */ 
1990/0227    
	char	msg[ERRLEN]; 
}; 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)