new keyboard navigation method now is default
[far2l.git] / WinPort / sudo.h
blobda9c28a85ccbc04b7a1be23e550e47aa4727b56d
1 #pragma once
2 #include <sys/types.h>
3 #include <sys/stat.h>
4 #include <sys/statvfs.h>
5 #ifdef __APPLE__
6 #include <sys/mount.h>
7 #elif !defined(__FreeBSD__) && !defined(__DragonFly__) && !defined(__HAIKU__)
8 #include <sys/statfs.h>
9 #endif
10 #include <dirent.h>
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
16 typedef enum SudoClientMode_ {
17 SCM_DISABLE,
18 SCM_CONFIRM_MODIFY,
19 SCM_CONFIRM_NONE
20 } SudoClientMode;
22 void sudo_client_configure(SudoClientMode mode, int password_expiration,
23 const char *sudo_app, const char *askpass_app,
24 const char *sudo_title, const char *sudo_prompt, const char *sudo_confirm);
26 int sudo_main_askpass();
27 int sudo_main_dispatcher(int argc, char *argv[]);
29 int sudo_client_execute(const char *cmd, bool modify, bool no_wait);
30 __attribute__ ((visibility("default"))) int sudo_client_is_required_for(const char *pathname, bool modify);
31 __attribute__ ((visibility("default"))) void sudo_client_drop();
33 __attribute__ ((visibility("default"))) void sudo_client_region_enter();
34 __attribute__ ((visibility("default"))) void sudo_client_region_leave();
35 __attribute__ ((visibility("default"))) void sudo_silent_query_region_enter();
36 __attribute__ ((visibility("default"))) void sudo_silent_query_region_leave();
38 __attribute__ ((visibility("default"))) int sdc_close(int fd);
39 __attribute__ ((visibility("default"))) int sdc_open(const char* pathname, int flags, ...);
40 __attribute__ ((visibility("default"))) off_t sdc_lseek(int fd, off_t offset, int whence);
41 __attribute__ ((visibility("default"))) ssize_t sdc_write(int fd, const void *buf, size_t count);
42 __attribute__ ((visibility("default"))) ssize_t sdc_read(int fd, void *buf, size_t count);
43 __attribute__ ((visibility("default"))) ssize_t sdc_pwrite(int fd, const void *buf, size_t count, off_t offset);
44 __attribute__ ((visibility("default"))) ssize_t sdc_pread(int fd, void *buf, size_t count, off_t offset);
45 __attribute__ ((visibility("default"))) int sdc_statfs(const char *path, struct statfs *buf);
46 __attribute__ ((visibility("default"))) int sdc_statvfs(const char *path, struct statvfs *buf);
47 __attribute__ ((visibility("default"))) int sdc_stat(const char *path, struct stat *buf);
48 __attribute__ ((visibility("default"))) int sdc_lstat(const char *path, struct stat *buf);
49 __attribute__ ((visibility("default"))) int sdc_fstat(int fd, struct stat *buf);
50 __attribute__ ((visibility("default"))) int sdc_ftruncate(int fd, off_t length);
51 __attribute__ ((visibility("default"))) int sdc_fchmod(int fd, mode_t mode);
52 __attribute__ ((visibility("default"))) int sdc_closedir(DIR *dir);
53 __attribute__ ((visibility("default"))) DIR *sdc_opendir(const char *name);
54 __attribute__ ((visibility("default"))) struct dirent *sdc_readdir(DIR *dir);
55 __attribute__ ((visibility("default"))) int sdc_mkdir(const char *path, mode_t mode);
56 __attribute__ ((visibility("default"))) int sdc_chdir(const char *path);
57 __attribute__ ((visibility("default"))) int sdc_rmdir(const char *path);
58 __attribute__ ((visibility("default"))) int sdc_remove(const char *path);
59 __attribute__ ((visibility("default"))) int sdc_unlink(const char *path);
60 __attribute__ ((visibility("default"))) int sdc_chmod(const char *pathname, mode_t mode);
61 __attribute__ ((visibility("default"))) int sdc_chown(const char *pathname, uid_t owner, gid_t group);
62 __attribute__ ((visibility("default"))) int sdc_utimens(const char *filename, const struct timespec times[2]);
63 __attribute__ ((visibility("default"))) int sdc_futimens(int fd, const struct timespec times[2]);
64 __attribute__ ((visibility("default"))) int sdc_rename(const char *path1, const char *path2);
65 __attribute__ ((visibility("default"))) int sdc_symlink(const char *path1, const char *path2);
66 __attribute__ ((visibility("default"))) int sdc_link(const char *path1, const char *path2);
67 __attribute__ ((visibility("default"))) char *sdc_realpath(const char *path, char *resolved_path);
68 __attribute__ ((visibility("default"))) ssize_t sdc_readlink(const char *pathname, char *buf, size_t bufsiz);
69 __attribute__ ((visibility("default"))) char *sdc_getcwd(char *buf, size_t size);
70 __attribute__ ((visibility("default"))) ssize_t sdc_flistxattr(int fd, char *namebuf, size_t size);
71 __attribute__ ((visibility("default"))) ssize_t sdc_fgetxattr(int fd, const char *name,void *value, size_t size);
72 __attribute__ ((visibility("default"))) int sdc_fsetxattr(int fd, const char *name, const void *value, size_t size, int flags);
73 __attribute__ ((visibility("default"))) int sdc_fs_flags_get(const char *path, unsigned long *flags);
74 __attribute__ ((visibility("default"))) int sdc_fs_flags_set(const char *path, unsigned long flags);
75 __attribute__ ((visibility("default"))) int sdc_mkfifo(const char *path, mode_t mode);
76 __attribute__ ((visibility("default"))) int sdc_mknod(const char *path, mode_t mode, dev_t dev);
78 #ifdef __cplusplus
81 struct SudoClientRegion
83 inline SudoClientRegion()
85 sudo_client_region_enter();
88 inline ~SudoClientRegion()
90 sudo_client_region_leave();
94 class SudoSilentQueryRegion
96 bool _entered;
98 public:
99 inline SudoSilentQueryRegion(bool enter = true) : _entered(enter)
101 if (enter)
102 sudo_silent_query_region_enter();
105 inline void Enter()
107 if (!_entered) {
108 _entered = true;
109 sudo_silent_query_region_enter();
113 inline ~SudoSilentQueryRegion()
115 if (_entered)
116 sudo_silent_query_region_leave();
119 #endif