]>
Commit | Line | Data |
---|---|---|
39adb5c3 TG |
1 | /** @file |
2 | * vboxsf -- VirtualBox Guest Additions for Linux: mount(2) parameter structure. | |
3 | */ | |
4 | ||
5 | /* | |
6 | * Copyright (C) 2006-2016 Oracle Corporation | |
7 | * | |
8 | * This file is part of VirtualBox Open Source Edition (OSE), as | |
9 | * available from http://www.virtualbox.org. This file is free software; | |
10 | * you can redistribute it and/or modify it under the terms of the GNU | |
11 | * General Public License (GPL) as published by the Free Software | |
12 | * Foundation, in version 2 as it comes in the "COPYING" file of the | |
13 | * VirtualBox OSE distribution. VirtualBox OSE is distributed in the | |
14 | * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. | |
15 | */ | |
16 | ||
17 | #ifndef VBFS_MOUNT_H | |
18 | #define VBFS_MOUNT_H | |
19 | ||
20 | #define MAX_HOST_NAME 256 | |
21 | #define MAX_NLS_NAME 32 | |
22 | ||
23 | /* Linux constraints the size of data mount argument to PAGE_SIZE - 1. */ | |
24 | struct vbsf_mount_info_old | |
25 | { | |
26 | char name[MAX_HOST_NAME]; | |
27 | char nls_name[MAX_NLS_NAME]; | |
28 | int uid; | |
29 | int gid; | |
30 | int ttl; | |
31 | }; | |
32 | ||
33 | #define VBSF_MOUNT_SIGNATURE_BYTE_0 '\377' | |
34 | #define VBSF_MOUNT_SIGNATURE_BYTE_1 '\376' | |
35 | #define VBSF_MOUNT_SIGNATURE_BYTE_2 '\375' | |
36 | ||
37 | struct vbsf_mount_info_new | |
38 | { | |
39 | char nullchar; /* name cannot be '\0' -- we use this field | |
40 | to distinguish between the old structure | |
41 | and the new structure */ | |
42 | char signature[3]; /* signature */ | |
43 | int length; /* length of the whole structure */ | |
44 | char name[MAX_HOST_NAME]; /* share name */ | |
45 | char nls_name[MAX_NLS_NAME];/* name of an I/O charset */ | |
46 | int uid; /* user ID for all entries, default 0=root */ | |
47 | int gid; /* group ID for all entries, default 0=root */ | |
48 | int ttl; /* time to live */ | |
49 | int dmode; /* mode for directories if != 0xffffffff */ | |
50 | int fmode; /* mode for regular files if != 0xffffffff */ | |
51 | int dmask; /* umask applied to directories */ | |
52 | int fmask; /* umask applied to regular files */ | |
53 | }; | |
54 | ||
55 | struct vbsf_mount_opts | |
56 | { | |
57 | int uid; | |
58 | int gid; | |
59 | int ttl; | |
60 | int dmode; | |
61 | int fmode; | |
62 | int dmask; | |
63 | int fmask; | |
64 | int ronly; | |
65 | int sloppy; | |
66 | int noexec; | |
67 | int nodev; | |
68 | int nosuid; | |
69 | int remount; | |
70 | char nls_name[MAX_NLS_NAME]; | |
71 | char *convertcp; | |
72 | }; | |
73 | ||
74 | /** Completes the mount operation by adding the new mount point to mtab if required. */ | |
75 | int vbsfmount_complete(const char *host_name, const char *mount_point, | |
76 | unsigned long flags, struct vbsf_mount_opts *opts); | |
77 | ||
78 | #endif /* vbsfmount.h */ |