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

1990/0227/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); 
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]; 
}; 


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