Skip to content

Commit 83f6dcf

Browse files
jrmarinotgross35
authored andcommitted
Relocate <spawn.h> functions to define them to dragonfly.
While here: - Relocate mkostemp and mkostemps functions for same reason - Update semver tests for DF spawn and mkostemp(s) (backport <rust-lang#4294>) [ update constants to c_int to match libc-0.2 - Trevor ] (cherry picked from commit a294be6)
1 parent 7ac4575 commit 83f6dcf

File tree

3 files changed

+119
-87
lines changed

3 files changed

+119
-87
lines changed

libc-test/semver/dragonfly.txt

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -771,6 +771,12 @@ POSIX_MADV_NORMAL
771771
POSIX_MADV_RANDOM
772772
POSIX_MADV_SEQUENTIAL
773773
POSIX_MADV_WILLNEED
774+
POSIX_SPAWN_RESETIDS
775+
POSIX_SPAWN_SETPGROUP
776+
POSIX_SPAWN_SETSCHEDPARAM
777+
POSIX_SPAWN_SETSCHEDULER
778+
POSIX_SPAWN_SETSIGDEF
779+
POSIX_SPAWN_SETSIGMASK
774780
PPPDISC
775781
PROC_PDEATHSIG_CTL
776782
PROC_PDEATHSIG_STATUS
@@ -1434,6 +1440,8 @@ mincore
14341440
mkdirat
14351441
mkfifoat
14361442
mknodat
1443+
mkostemp
1444+
mkostemps
14371445
mkstemps
14381446
mq_attr
14391447
mq_close
@@ -1468,6 +1476,29 @@ popen
14681476
posix_fadvise
14691477
posix_fallocate
14701478
posix_madvise
1479+
posix_spawn
1480+
posix_spawn_file_actions_addclose
1481+
posix_spawn_file_actions_adddup2
1482+
posix_spawn_file_actions_addopen
1483+
posix_spawn_file_actions_destroy
1484+
posix_spawn_file_actions_init
1485+
posix_spawn_file_actions_t
1486+
posix_spawnattr_destroy
1487+
posix_spawnattr_getflags
1488+
posix_spawnattr_getpgroup
1489+
posix_spawnattr_getschedparam
1490+
posix_spawnattr_getschedpolicy
1491+
posix_spawnattr_getsigdefault
1492+
posix_spawnattr_getsigmask
1493+
posix_spawnattr_init
1494+
posix_spawnattr_setflags
1495+
posix_spawnattr_setpgroup
1496+
posix_spawnattr_setschedparam
1497+
posix_spawnattr_setschedpolicy
1498+
posix_spawnattr_setsigdefault
1499+
posix_spawnattr_setsigmask
1500+
posix_spawnattr_t
1501+
posix_spawnp
14711502
ppoll
14721503
preadv
14731504
procctl

src/unix/bsd/freebsdlike/freebsd/mod.rs

Lines changed: 0 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@ pub type cpulevel_t = c_int;
2626
pub type cpuwhich_t = c_int;
2727

2828
pub type mqd_t = *mut c_void;
29-
pub type posix_spawnattr_t = *mut c_void;
30-
pub type posix_spawn_file_actions_t = *mut c_void;
3129

3230
pub type pthread_spinlock_t = *mut __c_anonymous_pthread_spinlock;
3331
pub type pthread_barrierattr_t = *mut __c_anonymous_pthread_barrierattr;
@@ -3967,14 +3965,6 @@ pub const RTP_PRIO_REALTIME: c_ushort = 2;
39673965
pub const RTP_PRIO_NORMAL: c_ushort = 3;
39683966
pub const RTP_PRIO_IDLE: c_ushort = 4;
39693967

3970-
// DIFF(main): changed to `c_short` in f62eb023ab
3971-
pub const POSIX_SPAWN_RESETIDS: c_int = 0x01;
3972-
pub const POSIX_SPAWN_SETPGROUP: c_int = 0x02;
3973-
pub const POSIX_SPAWN_SETSCHEDPARAM: c_int = 0x04;
3974-
pub const POSIX_SPAWN_SETSCHEDULER: c_int = 0x08;
3975-
pub const POSIX_SPAWN_SETSIGDEF: c_int = 0x10;
3976-
pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x20;
3977-
39783968
// Flags for chflags(2)
39793969
pub const UF_SYSTEM: c_ulong = 0x00000080;
39803970
pub const UF_SPARSE: c_ulong = 0x00000100;
@@ -5185,9 +5175,6 @@ extern "C" {
51855175
sevp: *mut sigevent,
51865176
) -> c_int;
51875177

5188-
pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int;
5189-
pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int;
5190-
51915178
pub fn getutxuser(user: *const c_char) -> *mut utmpx;
51925179
pub fn setutxdb(_type: c_int, file: *const c_char) -> c_int;
51935180

@@ -5221,80 +5208,6 @@ extern "C" {
52215208

52225209
pub fn rtprio_thread(function: c_int, lwpid: crate::lwpid_t, rtp: *mut super::rtprio) -> c_int;
52235210

5224-
pub fn posix_spawn(
5225-
pid: *mut crate::pid_t,
5226-
path: *const c_char,
5227-
file_actions: *const crate::posix_spawn_file_actions_t,
5228-
attrp: *const crate::posix_spawnattr_t,
5229-
argv: *const *mut c_char,
5230-
envp: *const *mut c_char,
5231-
) -> c_int;
5232-
pub fn posix_spawnp(
5233-
pid: *mut crate::pid_t,
5234-
file: *const c_char,
5235-
file_actions: *const crate::posix_spawn_file_actions_t,
5236-
attrp: *const crate::posix_spawnattr_t,
5237-
argv: *const *mut c_char,
5238-
envp: *const *mut c_char,
5239-
) -> c_int;
5240-
pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> c_int;
5241-
pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> c_int;
5242-
pub fn posix_spawnattr_getsigdefault(
5243-
attr: *const posix_spawnattr_t,
5244-
default: *mut crate::sigset_t,
5245-
) -> c_int;
5246-
pub fn posix_spawnattr_setsigdefault(
5247-
attr: *mut posix_spawnattr_t,
5248-
default: *const crate::sigset_t,
5249-
) -> c_int;
5250-
pub fn posix_spawnattr_getsigmask(
5251-
attr: *const posix_spawnattr_t,
5252-
default: *mut crate::sigset_t,
5253-
) -> c_int;
5254-
pub fn posix_spawnattr_setsigmask(
5255-
attr: *mut posix_spawnattr_t,
5256-
default: *const crate::sigset_t,
5257-
) -> c_int;
5258-
pub fn posix_spawnattr_getflags(attr: *const posix_spawnattr_t, flags: *mut c_short) -> c_int;
5259-
pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: c_short) -> c_int;
5260-
pub fn posix_spawnattr_getpgroup(
5261-
attr: *const posix_spawnattr_t,
5262-
flags: *mut crate::pid_t,
5263-
) -> c_int;
5264-
pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::pid_t) -> c_int;
5265-
pub fn posix_spawnattr_getschedpolicy(
5266-
attr: *const posix_spawnattr_t,
5267-
flags: *mut c_int,
5268-
) -> c_int;
5269-
pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: c_int) -> c_int;
5270-
pub fn posix_spawnattr_getschedparam(
5271-
attr: *const posix_spawnattr_t,
5272-
param: *mut crate::sched_param,
5273-
) -> c_int;
5274-
pub fn posix_spawnattr_setschedparam(
5275-
attr: *mut posix_spawnattr_t,
5276-
param: *const crate::sched_param,
5277-
) -> c_int;
5278-
5279-
pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> c_int;
5280-
pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> c_int;
5281-
pub fn posix_spawn_file_actions_addopen(
5282-
actions: *mut posix_spawn_file_actions_t,
5283-
fd: c_int,
5284-
path: *const c_char,
5285-
oflag: c_int,
5286-
mode: crate::mode_t,
5287-
) -> c_int;
5288-
pub fn posix_spawn_file_actions_addclose(
5289-
actions: *mut posix_spawn_file_actions_t,
5290-
fd: c_int,
5291-
) -> c_int;
5292-
pub fn posix_spawn_file_actions_adddup2(
5293-
actions: *mut posix_spawn_file_actions_t,
5294-
fd: c_int,
5295-
newfd: c_int,
5296-
) -> c_int;
5297-
52985211
pub fn uuidgen(store: *mut uuid, count: c_int) -> c_int;
52995212

53005213
pub fn thr_kill(id: c_long, sig: c_int) -> c_int;

src/unix/bsd/freebsdlike/mod.rs

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,9 @@ pub type iconv_t = *mut c_void;
4242
// making the type definition system dependent. Better not bind it exactly.
4343
pub type kvm_t = c_void;
4444

45+
pub type posix_spawnattr_t = *mut c_void;
46+
pub type posix_spawn_file_actions_t = *mut c_void;
47+
4548
cfg_if! {
4649
if #[cfg(target_pointer_width = "64")] {
4750
type Elf_Addr = Elf64_Addr;
@@ -1481,6 +1484,14 @@ pub const GRND_NONBLOCK: c_uint = 0x1;
14811484
pub const GRND_RANDOM: c_uint = 0x2;
14821485
pub const GRND_INSECURE: c_uint = 0x4;
14831486

1487+
// DIFF(main): changed to `c_short` in f62eb023ab
1488+
pub const POSIX_SPAWN_RESETIDS: c_int = 0x01;
1489+
pub const POSIX_SPAWN_SETPGROUP: c_int = 0x02;
1490+
pub const POSIX_SPAWN_SETSCHEDPARAM: c_int = 0x04;
1491+
pub const POSIX_SPAWN_SETSCHEDULER: c_int = 0x08;
1492+
pub const POSIX_SPAWN_SETSIGDEF: c_int = 0x10;
1493+
pub const POSIX_SPAWN_SETSIGMASK: c_int = 0x20;
1494+
14841495
safe_f! {
14851496
pub {const} fn WIFCONTINUED(status: c_int) -> bool {
14861497
status == 0x13
@@ -1795,6 +1806,83 @@ extern "C" {
17951806
search_path: *const c_char,
17961807
argv: *const *mut c_char,
17971808
) -> c_int;
1809+
1810+
pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int;
1811+
pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int;
1812+
1813+
pub fn posix_spawn(
1814+
pid: *mut crate::pid_t,
1815+
path: *const c_char,
1816+
file_actions: *const crate::posix_spawn_file_actions_t,
1817+
attrp: *const crate::posix_spawnattr_t,
1818+
argv: *const *mut c_char,
1819+
envp: *const *mut c_char,
1820+
) -> c_int;
1821+
pub fn posix_spawnp(
1822+
pid: *mut crate::pid_t,
1823+
file: *const c_char,
1824+
file_actions: *const crate::posix_spawn_file_actions_t,
1825+
attrp: *const crate::posix_spawnattr_t,
1826+
argv: *const *mut c_char,
1827+
envp: *const *mut c_char,
1828+
) -> c_int;
1829+
pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> c_int;
1830+
pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> c_int;
1831+
pub fn posix_spawnattr_getsigdefault(
1832+
attr: *const posix_spawnattr_t,
1833+
default: *mut crate::sigset_t,
1834+
) -> c_int;
1835+
pub fn posix_spawnattr_setsigdefault(
1836+
attr: *mut posix_spawnattr_t,
1837+
default: *const crate::sigset_t,
1838+
) -> c_int;
1839+
pub fn posix_spawnattr_getsigmask(
1840+
attr: *const posix_spawnattr_t,
1841+
default: *mut crate::sigset_t,
1842+
) -> c_int;
1843+
pub fn posix_spawnattr_setsigmask(
1844+
attr: *mut posix_spawnattr_t,
1845+
default: *const crate::sigset_t,
1846+
) -> c_int;
1847+
pub fn posix_spawnattr_getflags(attr: *const posix_spawnattr_t, flags: *mut c_short) -> c_int;
1848+
pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: c_short) -> c_int;
1849+
pub fn posix_spawnattr_getpgroup(
1850+
attr: *const posix_spawnattr_t,
1851+
flags: *mut crate::pid_t,
1852+
) -> c_int;
1853+
pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::pid_t) -> c_int;
1854+
pub fn posix_spawnattr_getschedpolicy(
1855+
attr: *const posix_spawnattr_t,
1856+
flags: *mut c_int,
1857+
) -> c_int;
1858+
pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: c_int) -> c_int;
1859+
pub fn posix_spawnattr_getschedparam(
1860+
attr: *const posix_spawnattr_t,
1861+
param: *mut crate::sched_param,
1862+
) -> c_int;
1863+
pub fn posix_spawnattr_setschedparam(
1864+
attr: *mut posix_spawnattr_t,
1865+
param: *const crate::sched_param,
1866+
) -> c_int;
1867+
1868+
pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> c_int;
1869+
pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> c_int;
1870+
pub fn posix_spawn_file_actions_addopen(
1871+
actions: *mut posix_spawn_file_actions_t,
1872+
fd: c_int,
1873+
path: *const c_char,
1874+
oflag: c_int,
1875+
mode: crate::mode_t,
1876+
) -> c_int;
1877+
pub fn posix_spawn_file_actions_addclose(
1878+
actions: *mut posix_spawn_file_actions_t,
1879+
fd: c_int,
1880+
) -> c_int;
1881+
pub fn posix_spawn_file_actions_adddup2(
1882+
actions: *mut posix_spawn_file_actions_t,
1883+
fd: c_int,
1884+
newfd: c_int,
1885+
) -> c_int;
17981886
}
17991887

18001888
#[link(name = "rt")]

0 commit comments

Comments
 (0)