xref: /csrg-svn/old/pcc/lint/lpass1/lmanifest.h (revision 11761)
17992Srrh /*
2*11761Sedward  *	@(#)lmanifest.h	1.2	(Berkeley)	03/29/83
37992Srrh  */
47992Srrh /*	the key:
57992Srrh 	LDI	defined and initialized: storage set aside
67992Srrh 	LIB	defined on a library
77992Srrh 	LDC	defined as a common region on UNIX
87992Srrh 	LDX	defined by an extern: if ! pflag, same as LDI
97992Srrh 	LRV	function returns a value
107992Srrh 	LUV	function used in a value context
117992Srrh 	LUE	function used in effects context
127992Srrh 	LUM	mentioned somewhere other than at the declaration
13*11761Sedward 	LST	defined as a static
147992Srrh 	*/
15*11761Sedward # define LDI 0001
16*11761Sedward # define LIB 0002
17*11761Sedward # define LDC 0004
18*11761Sedward # define LDX 0010
19*11761Sedward # define LRV 0020
20*11761Sedward # define LUV 0040
217992Srrh # define LUE 0100
227992Srrh # define LUM 0200
23*11761Sedward # define LST 0400
247992Srrh 
25*11761Sedward # define LFN 01000  /* filename record */
267992Srrh 
277992Srrh 	/* number of chars in NAME, and filename */
287992Srrh #ifndef FLEXNAMES
297992Srrh # define LCHNM 8
307992Srrh # define LFNM 14
317992Srrh #endif
327992Srrh 
337992Srrh typedef struct ty {
347992Srrh 	TWORD aty;
357992Srrh 	short extra;
36*11761Sedward 	short extra1;
377992Srrh 	} ATYPE;
387992Srrh 
39*11761Sedward #define X_NONAME 0x8000		/* for extra1, if structure has no name */
40*11761Sedward 
417992Srrh typedef struct line {
427992Srrh 	short decflag;
437992Srrh #ifndef FLEXNAMES
447992Srrh 	char name[LCHNM];
457992Srrh #else
467992Srrh 	char *name;
477992Srrh #endif
487992Srrh 	short nargs;
497992Srrh 	short fline;
507992Srrh 	ATYPE type;
517992Srrh 	} LINE;
527992Srrh 
537992Srrh union rec {
547992Srrh 	struct line l;
557992Srrh 	struct {
567992Srrh 		short decflag;
577992Srrh #ifndef FLEXNAMES
587992Srrh 		char fn[LFNM];
597992Srrh #else
607992Srrh 		char *fn;
617992Srrh #endif
627992Srrh 		} f;
637992Srrh 	};
64