1*8d67ca89SAndroid Build Coastguard Worker /*- 2*8d67ca89SAndroid Build Coastguard Worker * Copyright (c) 1991, 1993 3*8d67ca89SAndroid Build Coastguard Worker * The Regents of the University of California. All rights reserved. 4*8d67ca89SAndroid Build Coastguard Worker * (c) UNIX System Laboratories, Inc. 5*8d67ca89SAndroid Build Coastguard Worker * All or some portions of this file are derived from material licensed 6*8d67ca89SAndroid Build Coastguard Worker * to the University of California by American Telephone and Telegraph 7*8d67ca89SAndroid Build Coastguard Worker * Co. or Unix System Laboratories, Inc. and are reproduced herein with 8*8d67ca89SAndroid Build Coastguard Worker * the permission of UNIX System Laboratories, Inc. 9*8d67ca89SAndroid Build Coastguard Worker * 10*8d67ca89SAndroid Build Coastguard Worker * This code is derived from software contributed to Berkeley by 11*8d67ca89SAndroid Build Coastguard Worker * Hugh Smith at The University of Guelph. 12*8d67ca89SAndroid Build Coastguard Worker * 13*8d67ca89SAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 14*8d67ca89SAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions 15*8d67ca89SAndroid Build Coastguard Worker * are met: 16*8d67ca89SAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright 17*8d67ca89SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 18*8d67ca89SAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright 19*8d67ca89SAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in the 20*8d67ca89SAndroid Build Coastguard Worker * documentation and/or other materials provided with the distribution. 21*8d67ca89SAndroid Build Coastguard Worker * 3. Neither the name of the University nor the names of its contributors 22*8d67ca89SAndroid Build Coastguard Worker * may be used to endorse or promote products derived from this software 23*8d67ca89SAndroid Build Coastguard Worker * without specific prior written permission. 24*8d67ca89SAndroid Build Coastguard Worker * 25*8d67ca89SAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 26*8d67ca89SAndroid Build Coastguard Worker * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 27*8d67ca89SAndroid Build Coastguard Worker * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 28*8d67ca89SAndroid Build Coastguard Worker * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 29*8d67ca89SAndroid Build Coastguard Worker * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 30*8d67ca89SAndroid Build Coastguard Worker * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 31*8d67ca89SAndroid Build Coastguard Worker * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 32*8d67ca89SAndroid Build Coastguard Worker * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 33*8d67ca89SAndroid Build Coastguard Worker * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 34*8d67ca89SAndroid Build Coastguard Worker * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 35*8d67ca89SAndroid Build Coastguard Worker * SUCH DAMAGE. 36*8d67ca89SAndroid Build Coastguard Worker * 37*8d67ca89SAndroid Build Coastguard Worker * @(#)ar.h 8.2 (Berkeley) 1/21/94 38*8d67ca89SAndroid Build Coastguard Worker */ 39*8d67ca89SAndroid Build Coastguard Worker 40*8d67ca89SAndroid Build Coastguard Worker #pragma once 41*8d67ca89SAndroid Build Coastguard Worker 42*8d67ca89SAndroid Build Coastguard Worker /** 43*8d67ca89SAndroid Build Coastguard Worker * @file ar.h 44*8d67ca89SAndroid Build Coastguard Worker * @brief Constants for reading/writing `.a` files. 45*8d67ca89SAndroid Build Coastguard Worker */ 46*8d67ca89SAndroid Build Coastguard Worker 47*8d67ca89SAndroid Build Coastguard Worker #include <sys/cdefs.h> 48*8d67ca89SAndroid Build Coastguard Worker 49*8d67ca89SAndroid Build Coastguard Worker /** The magic at the beginning of a `.a` file. */ 50*8d67ca89SAndroid Build Coastguard Worker #define ARMAG "!<arch>\n" 51*8d67ca89SAndroid Build Coastguard Worker /** The length of the magic at the beginning of a `.a` file. */ 52*8d67ca89SAndroid Build Coastguard Worker #define SARMAG 8 53*8d67ca89SAndroid Build Coastguard Worker 54*8d67ca89SAndroid Build Coastguard Worker /** The contents of every `ar_hdr::ar_fmag` field.*/ 55*8d67ca89SAndroid Build Coastguard Worker #define ARFMAG "`\n" 56*8d67ca89SAndroid Build Coastguard Worker 57*8d67ca89SAndroid Build Coastguard Worker struct ar_hdr { 58*8d67ca89SAndroid Build Coastguard Worker /* Name. */ 59*8d67ca89SAndroid Build Coastguard Worker char ar_name[16]; 60*8d67ca89SAndroid Build Coastguard Worker /* Modification time. */ 61*8d67ca89SAndroid Build Coastguard Worker char ar_date[12]; 62*8d67ca89SAndroid Build Coastguard Worker /** User id. */ 63*8d67ca89SAndroid Build Coastguard Worker char ar_uid[6]; 64*8d67ca89SAndroid Build Coastguard Worker /** Group id. */ 65*8d67ca89SAndroid Build Coastguard Worker char ar_gid[6]; 66*8d67ca89SAndroid Build Coastguard Worker /** Octal file permissions. */ 67*8d67ca89SAndroid Build Coastguard Worker char ar_mode[8]; 68*8d67ca89SAndroid Build Coastguard Worker /** Size in bytes. */ 69*8d67ca89SAndroid Build Coastguard Worker char ar_size[10]; 70*8d67ca89SAndroid Build Coastguard Worker /** Consistency check. Always contains `ARFMAG`. */ 71*8d67ca89SAndroid Build Coastguard Worker char ar_fmag[2]; 72*8d67ca89SAndroid Build Coastguard Worker }; 73