source: mainline/uspace/lib/untar/private/tar.h@ 24fda5e

lfn serial ticket/834-toolchain-update topic/msim-upgrade topic/simplify-dev-export
Last change on this file since 24fda5e was 24fda5e, checked in by Martin Decky <martin@…>, 7 years ago

separate the TAR extraction to a library to make the code reusable

  • Property mode set to 100644
File size: 2.3 KB
RevLine 
[ff042c0]1/*
2 * Copyright (c) 2013 Vojtech Horky
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * - Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * - Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
14 * - The name of the author may not be used to endorse or promote products
15 * derived from this software without specific prior written permission.
16 *
17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
18 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
19 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28
[24fda5e]29/** @addtogroup libuntar
[ff042c0]30 * @{
31 */
32/** @file
33 */
[24fda5e]34
35#ifndef TAR_H_
36#define TAR_H_
[ff042c0]37
38#define TAR_BLOCK_SIZE 512
39
40typedef struct tar_header_raw {
41 char filename[100];
42 char permissions[8];
43 char owner[8];
44 char group[8];
45 char size[12];
46 char modification_time[12];
47 char checksum[8];
48 char type;
49 char name[100];
50 char ustar_magic[6];
51 char ustar_version[2];
52 char ustar_owner_name[32];
53 char ustar_group_name[32];
54 char ustar_device_major[8];
55 char ustar_device_minor[8];
56 char ustar_prefix[155];
57 char ignored[12];
58} tar_header_raw_t;
59
60typedef enum tar_type {
61 TAR_TYPE_UNKNOWN,
62 TAR_TYPE_NORMAL,
63 TAR_TYPE_DIRECTORY
64} tar_type_t;
65
66typedef struct tar_header {
67 char filename[100];
68 size_t size;
69 tar_type_t type;
70} tar_header_t;
71
[b7fd2a0]72extern errno_t tar_header_parse(tar_header_t *, const tar_header_raw_t *);
[ff042c0]73extern tar_type_t tar_type_parse(const char);
74extern const char *tar_type_str(tar_type_t);
75
76#endif
77
78/** @}
79 */
Note: See TracBrowser for help on using the repository browser.