/* <lnkdef.h>
 *
 *	OBJFMT -- linker options record (LNK)
 */
#ifndef _LNKDEF_H
#define _LNKDEF_H

#define LNK$C_OLB	0	/* object library spec */
#define LNK$C_SHR	1	/* shareable image library spec */
#define LNK$C_OLI	2	/* object library with inclusion list */
#define LNK$C_OBJ	3	/* object file or symbol table file */
#define LNK$C_SHA	4	/* individually specified shr img */
#define LNK$C_MAXRECTYP 4	/* highest current record type */
#define LNK$V_SELSER	0
#define LNK$V_LIBSRCH	1
#define LNK$M_SELSER	(1<<LNK$V_SELSER)	/* 0x01 */
#define LNK$M_LIBSRCH	(1<<LNK$V_LIBSRCH)	/* 0x02 */
struct lnkdef {
    unsigned char lnk$b_rectyp;		/* record type LNK */
    unsigned char lnk$b_lnktyp;		/* sub record type */
    union {
	unsigned short lnk$w_flags;
	struct {
	    unsigned lnk$v_selser  : 1; /* selectively searched (LNK$C_OBJ) */
	    unsigned lnk$v_libsrch : 1;
	    unsigned		   : 6;
	} lnk$r_flags_bits;
    } lnk$r_flags_overlay;
    union {
	unsigned short lnk$w_namlng;	/* length of filespec name */
	struct {
	    unsigned	: 8, : 8;	/* char fill[2]; */
	    char lnk$t_name[1];		/* actual name */
	} lnk$r_namlng_fields;
    } lnk$r_namlng_overlay;
};

#endif	/*_LNKDEF_H*/