1*9aa2a9c3Schristos /* $NetBSD: setfacl.h,v 1.1 2020/05/16 18:31:45 christos Exp $ */ 2*9aa2a9c3Schristos 3*9aa2a9c3Schristos /*- 4*9aa2a9c3Schristos * Copyright (c) 2001 Chris D. Faulhaber 5*9aa2a9c3Schristos * All rights reserved. 6*9aa2a9c3Schristos * 7*9aa2a9c3Schristos * Redistribution and use in source and binary forms, with or without 8*9aa2a9c3Schristos * modification, are permitted provided that the following conditions 9*9aa2a9c3Schristos * are met: 10*9aa2a9c3Schristos * 1. Redistributions of source code must retain the above copyright 11*9aa2a9c3Schristos * notice, this list of conditions and the following disclaimer. 12*9aa2a9c3Schristos * 2. Redistributions in binary form must reproduce the above copyright 13*9aa2a9c3Schristos * notice, this list of conditions and the following disclaimer in the 14*9aa2a9c3Schristos * documentation and/or other materials provided with the distribution. 15*9aa2a9c3Schristos * 16*9aa2a9c3Schristos * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 17*9aa2a9c3Schristos * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18*9aa2a9c3Schristos * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19*9aa2a9c3Schristos * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 20*9aa2a9c3Schristos * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 21*9aa2a9c3Schristos * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 22*9aa2a9c3Schristos * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23*9aa2a9c3Schristos * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 24*9aa2a9c3Schristos * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 25*9aa2a9c3Schristos * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 26*9aa2a9c3Schristos * SUCH DAMAGE. 27*9aa2a9c3Schristos * 28*9aa2a9c3Schristos * $FreeBSD: head/bin/setfacl/setfacl.h 333065 2018-04-27 15:25:24Z emaste $ 29*9aa2a9c3Schristos */ 30*9aa2a9c3Schristos 31*9aa2a9c3Schristos #ifndef _SETFACL_H 32*9aa2a9c3Schristos #define _SETFACL_H 33*9aa2a9c3Schristos 34*9aa2a9c3Schristos #include <stdbool.h> 35*9aa2a9c3Schristos 36*9aa2a9c3Schristos #include <sys/types.h> 37*9aa2a9c3Schristos #include <sys/acl.h> 38*9aa2a9c3Schristos #include <sys/queue.h> 39*9aa2a9c3Schristos 40*9aa2a9c3Schristos /* files.c */ 41*9aa2a9c3Schristos acl_t get_acl_from_file(const char *filename); 42*9aa2a9c3Schristos /* merge.c */ 43*9aa2a9c3Schristos int merge_acl(acl_t acl, acl_t *prev_acl, const char *filename); 44*9aa2a9c3Schristos int add_acl(acl_t acl, uint entry_number, acl_t *prev_acl, 45*9aa2a9c3Schristos const char *filename); 46*9aa2a9c3Schristos /* remove.c */ 47*9aa2a9c3Schristos int remove_acl(acl_t acl, acl_t *prev_acl, const char *filename); 48*9aa2a9c3Schristos int remove_by_number(uint entry_number, acl_t *prev_acl, 49*9aa2a9c3Schristos const char *filename); 50*9aa2a9c3Schristos int remove_default(acl_t *prev_acl, const char *filename); 51*9aa2a9c3Schristos void remove_ext(acl_t *prev_acl, const char *filename); 52*9aa2a9c3Schristos /* mask.c */ 53*9aa2a9c3Schristos int set_acl_mask(acl_t *prev_acl, const char *filename); 54*9aa2a9c3Schristos /* util.c */ 55*9aa2a9c3Schristos void *zmalloc(size_t size); 56*9aa2a9c3Schristos void *zrealloc(void *ptr, size_t size); 57*9aa2a9c3Schristos const char *brand_name(int brand); 58*9aa2a9c3Schristos int branding_mismatch(int brand1, int brand2); 59*9aa2a9c3Schristos 60*9aa2a9c3Schristos extern bool have_mask; 61*9aa2a9c3Schristos extern bool have_stdin; 62*9aa2a9c3Schristos extern bool n_flag; 63*9aa2a9c3Schristos 64*9aa2a9c3Schristos #endif /* _SETFACL_H */ 65