1 /*- 2 * Copyright (c) 2013 The FreeBSD Foundation 3 * All rights reserved. 4 * 5 * This software was developed by Edward Tomasz Napierala under sponsorship 6 * from the FreeBSD Foundation. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * 29 * $FreeBSD$ 30 */ 31 32 #ifndef AUTOFS_IOCTL_H 33 #define AUTOFS_IOCTL_H 34 35 #define AUTOFS_PATH "/dev/autofs" 36 37 struct autofs_daemon_request { 38 /* 39 * Request identifier. 40 */ 41 int adr_id; 42 43 /* 44 * The "from" field, containing map name. For example, 45 * when accessing '/net/192.168.1.3/tank/vm/', that would 46 * be '-hosts'. 47 */ 48 char adr_from[MAXPATHLEN]; 49 50 /* 51 * Full path to the node being looked up; for requests that result 52 * in actual mount it is the full mount path. 53 */ 54 char adr_path[MAXPATHLEN]; 55 56 /* 57 * Prefix, which is basically the mountpoint from auto_master(5). 58 * In example above that would be "/net"; for direct maps it is "/". 59 */ 60 char adr_prefix[MAXPATHLEN]; 61 62 /* 63 * Map key, also used as command argument for dynamic maps; in example 64 * above that would be '192.168.1.3'. 65 */ 66 char adr_key[MAXPATHLEN]; 67 68 /* 69 * Mount options from auto_master(5). 70 */ 71 char adr_options[MAXPATHLEN]; 72 }; 73 74 /* 75 * Compatibility with 10.1-RELEASE automountd(8). 76 */ 77 struct autofs_daemon_done_101 { 78 /* 79 * Identifier, copied from adr_id. 80 */ 81 int add_id; 82 83 /* 84 * Error number, possibly returned to userland. 85 */ 86 int add_error; 87 }; 88 89 struct autofs_daemon_done { 90 /* 91 * Identifier, copied from adr_id. 92 */ 93 int add_id; 94 95 /* 96 * Set to 1 if the map may contain wildcard entries; 97 * otherwise autofs will do negative caching. 98 */ 99 int add_wildcards; 100 101 /* 102 * Error number, possibly returned to userland. 103 */ 104 int add_error; 105 106 /* 107 * Reserved for future use. 108 */ 109 int add_spare[7]; 110 }; 111 112 #define AUTOFSREQUEST _IOR('I', 0x01, struct autofs_daemon_request) 113 #define AUTOFSDONE101 _IOW('I', 0x02, struct autofs_daemon_done_101) 114 #define AUTOFSDONE _IOW('I', 0x03, struct autofs_daemon_done) 115 116 #endif /* !AUTOFS_IOCTL_H */ 117