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

1991/0718/gnot/lib.h (diff list | history)

1991/0718/sys/src/9/gnot/lib.h:1,1141991/1007/sys/src/9/gnot/lib.h:1,116 (short | long | prev | next)
1990/03091    
/* 
 * 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/03091    
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*); 
1991/1007    
extern	int	atoi(char*); 
1990/03091    
 
/* 
 * 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); 
1990/06111    
extern	char	*doprint(char*, char*, char*, void*); 
1990/03091    
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); 
1991/1007    
extern	long	etext; 
extern	long	edata; 
1990/03091    
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 */ 
1990/08141    
#define	OCEXEC	32	/* or'ed in, close on exec */ 
#define	ORCLOSE	64	/* or'ed in, remove on close */ 
1990/03091    
 
1991/0717    
#define	NCONT	0	/* continue after note */ 
1991/0718    
#define	NDFLT	1	/* terminate after note */ 
1991/0717    
 
1990/11211    
typedef struct Qid	Qid; 
1990/03091    
typedef struct Dir	Dir; 
typedef struct Waitmsg	Waitmsg; 
 
1990/11211    
#define	ERRLEN	64 
#define	DIRLEN	116 
#define	NAMELEN	28 
 
struct Qid 
1990/03091    
{ 
1990/11211    
	ulong	path; 
	ulong	vers; 
1990/03091    
}; 
 
struct Dir 
{ 
	char	name[NAMELEN]; 
1990/11211    
	char	uid[NAMELEN]; 
	char	gid[NAMELEN]; 
	Qid	qid; 
	ulong	mode; 
1990/03091    
	long	atime; 
	long	mtime; 
	Length; 
	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)