Home | History | Annotate | Download | only in head
      1 /*
      2  * CDDL HEADER START
      3  *
      4  * The contents of this file are subject to the terms of the
      5  * Common Development and Distribution License, Version 1.0 only
      6  * (the "License").  You may not use this file except in compliance
      7  * with the License.
      8  *
      9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
     10  * or http://www.opensolaris.org/os/licensing.
     11  * See the License for the specific language governing permissions
     12  * and limitations under the License.
     13  *
     14  * When distributing Covered Code, include this CDDL HEADER in each
     15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
     16  * If applicable, add the following below this CDDL HEADER, with the
     17  * fields enclosed by brackets "[]" replaced with your own identifying
     18  * information: Portions Copyright [yyyy] [name of copyright owner]
     19  *
     20  * CDDL HEADER END
     21  */
     22 /*	Copyright (c) 1988 AT&T	*/
     23 /*	  All Rights Reserved  	*/
     24 
     25 
     26 #ifndef _AR_H
     27 #define	_AR_H
     28 
     29 #pragma ident	"%Z%%M%	%I%	%E% SMI"	/* SVr4.0 2.12	*/
     30 
     31 #ifdef	__cplusplus
     32 extern "C" {
     33 #endif
     34 
     35 /*
     36  *		COMMON ARCHIVE FORMAT
     37  *
     38  *	ARCHIVE File Organization:
     39  *	_________________________________________________
     40  *	|__________ARCHIVE_MAGIC_STRING_________________|
     41  *	|__________ARCHIVE_FILE_MEMBER_1________________|
     42  *	|						|
     43  *	|	Archive File Header "ar_hdr"		|
     44  *	|...............................................|
     45  *	|	Member Contents				|
     46  *	|		1. External symbol directory	|
     47  *	|		2. Text file			|
     48  *	|_______________________________________________|
     49  *	|________ARCHIVE_FILE_MEMBER_2__________________|
     50  *	|		"ar_hdr"			|
     51  *	|...............................................|
     52  *	|	Member Contents (.o or text file)	|
     53  *	|_______________________________________________|
     54  *	|	.		.		.	|
     55  *	|	.		.		.	|
     56  *	|	.		.		.	|
     57  *	|_______________________________________________|
     58  *	|________ARCHIVE_FILE_MEMBER_n__________________|
     59  *	|		"ar_hdr"			|
     60  *	|...............................................|
     61  *	|		Member Contents			|
     62  *	|_______________________________________________|
     63  *
     64  */
     65 
     66 #define	ARMAG	"!<arch>\n"
     67 #define	SARMAG	8
     68 #define	ARFMAG	"`\n"
     69 
     70 struct ar_hdr		/* archive file member header - printable ascii */
     71 {
     72 	char	ar_name[16];	/* file member name - `/' terminated */
     73 	char	ar_date[12];	/* file member date - decimal */
     74 	char	ar_uid[6];	/* file member user id - decimal */
     75 	char	ar_gid[6];	/* file member group id - decimal */
     76 	char	ar_mode[8];	/* file member mode - octal */
     77 	char	ar_size[10];	/* file member size - decimal */
     78 	char	ar_fmag[2];	/* ARFMAG - string to end header */
     79 };
     80 
     81 #ifdef	__cplusplus
     82 }
     83 #endif
     84 
     85 #endif	/* _AR_H */
     86