… | |
… | |
1108 | /* extract a ref-to-array of strings into a temporary c style string vector */ |
1108 | /* extract a ref-to-array of strings into a temporary c style string vector */ |
1109 | static char ** |
1109 | static char ** |
1110 | extract_stringvec (SV *sv, const char *croakmsg) |
1110 | extract_stringvec (SV *sv, const char *croakmsg) |
1111 | { |
1111 | { |
1112 | if (!SvROK (sv) || SvTYPE (SvRV (sv)) != SVt_PVAV) |
1112 | if (!SvROK (sv) || SvTYPE (SvRV (sv)) != SVt_PVAV) |
1113 | croak (croakmsg); |
1113 | croak ("%s", croakmsg); |
1114 | |
1114 | |
1115 | AV *av = (AV *)SvRV (sv); |
1115 | AV *av = (AV *)SvRV (sv); |
1116 | int i, nelem = av_len (av) + 1; |
1116 | int i, nelem = av_len (av) + 1; |
1117 | char **vecp = (char **)SvPVX (sv_2mortal (newSV (sizeof (char *) * (nelem + 1)))); |
1117 | char **vecp = (char **)SvPVX (sv_2mortal (newSV (sizeof (char *) * (nelem + 1)))); |
1118 | |
1118 | |
… | |
… | |
1276 | |
1276 | |
1277 | const_iv (FS_IOC_GETFLAGS) |
1277 | const_iv (FS_IOC_GETFLAGS) |
1278 | const_iv (FS_IOC_SETFLAGS) |
1278 | const_iv (FS_IOC_SETFLAGS) |
1279 | const_iv (FS_IOC_GETVERSION) |
1279 | const_iv (FS_IOC_GETVERSION) |
1280 | const_iv (FS_IOC_SETVERSION) |
1280 | const_iv (FS_IOC_SETVERSION) |
|
|
1281 | #if HAVE_FIEMAP /* broken on musl for, like, foreever */ |
1281 | const_iv (FS_IOC_FIEMAP) |
1282 | const_iv (FS_IOC_FIEMAP) |
|
|
1283 | #endif |
1282 | const_iv (FS_IOC_FSGETXATTR) |
1284 | const_iv (FS_IOC_FSGETXATTR) |
1283 | const_iv (FS_IOC_FSSETXATTR) |
1285 | const_iv (FS_IOC_FSSETXATTR) |
1284 | const_iv (FS_IOC_SET_ENCRYPTION_POLICY) |
1286 | const_iv (FS_IOC_SET_ENCRYPTION_POLICY) |
1285 | const_iv (FS_IOC_GET_ENCRYPTION_PWSALT) |
1287 | const_iv (FS_IOC_GET_ENCRYPTION_PWSALT) |
1286 | const_iv (FS_IOC_GET_ENCRYPTION_POLICY) |
1288 | const_iv (FS_IOC_GET_ENCRYPTION_POLICY) |
… | |
… | |
2913 | extern char **environ; |
2915 | extern char **environ; |
2914 | envp = environ; |
2916 | envp = environ; |
2915 | } |
2917 | } |
2916 | else |
2918 | else |
2917 | envp = extract_stringvec (envs, "IO::AIO::fexecve: envs must be an array of strings"); |
2919 | envp = extract_stringvec (envs, "IO::AIO::fexecve: envs must be an array of strings"); |
2918 | #if _POSIX_VERSION >= 200809L |
2920 | #if HAVE_FEXECVE |
2919 | RETVAL = fexecve (fd, argv, envp); |
2921 | RETVAL = fexecve (fd, argv, envp); |
2920 | #else |
2922 | #else |
2921 | RETVAL = (errno = ENOSYS, -1); |
2923 | RETVAL = (errno = ENOSYS, -1); |
2922 | #endif |
2924 | #endif |
2923 | } |
2925 | } |
2924 | OUTPUT: RETVAL |
2926 | OUTPUT: RETVAL |
2925 | |
2927 | |
2926 | int |
2928 | int |
2927 | mount (octet_string special, octet_string path, octet_string fstype, UV flags = 0, octet_string_ornull data = 0) |
2929 | mount (octet_string special, octet_string path, octet_string fstype, UV flags = 0, octet_string_ornull data = 0) |
|
|
2930 | CODE: |
|
|
2931 | #if HAVE_MOUNT |
|
|
2932 | RETVAL = mount (special, path, fstype, flags, data); |
|
|
2933 | #else |
|
|
2934 | RETVAL = (errno = ENOSYS, -1); |
|
|
2935 | #endif |
2928 | OUTPUT: RETVAL |
2936 | OUTPUT: RETVAL |
2929 | |
2937 | |
2930 | int |
2938 | int |
2931 | umount (octet_string path, int flags = 0) |
2939 | umount (octet_string path, int flags = 0) |
2932 | CODE: |
2940 | CODE: |
… | |
… | |
2935 | RETVAL = umount2 (path, flags); |
2943 | RETVAL = umount2 (path, flags); |
2936 | #else |
2944 | #else |
2937 | RETVAL = (errno = ENOSYS, -1); |
2945 | RETVAL = (errno = ENOSYS, -1); |
2938 | #endif |
2946 | #endif |
2939 | else |
2947 | else |
|
|
2948 | #if HAVE_UMOUNT |
2940 | RETVAL = umount (path); |
2949 | RETVAL = umount (path); |
|
|
2950 | #else |
|
|
2951 | RETVAL = (errno = ENOSYS, -1); |
|
|
2952 | #endif |
2941 | OUTPUT: RETVAL |
2953 | OUTPUT: RETVAL |
2942 | |
2954 | |
2943 | UV |
2955 | UV |
2944 | get_fdlimit () |
2956 | get_fdlimit () |
2945 | CODE: |
2957 | CODE: |