Skip to content

Commit 10ef8ab

Browse files
authored
Merge pull request #4294 from jrmarino/dfly-spawn-mkostemp-2
Relocate <spawn.h> functions to define them to dragonfly.
2 parents c6976e4 + a294be6 commit 10ef8ab

File tree

3 files changed

+118
-86
lines changed

3 files changed

+118
-86
lines changed

libc-test/semver/dragonfly.txt

+31
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

-86
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;
@@ -3938,13 +3936,6 @@ pub const RTP_PRIO_REALTIME: c_ushort = 2;
39383936
pub const RTP_PRIO_NORMAL: c_ushort = 3;
39393937
pub const RTP_PRIO_IDLE: c_ushort = 4;
39403938

3941-
pub const POSIX_SPAWN_RESETIDS: c_short = 0x01;
3942-
pub const POSIX_SPAWN_SETPGROUP: c_short = 0x02;
3943-
pub const POSIX_SPAWN_SETSCHEDPARAM: c_short = 0x04;
3944-
pub const POSIX_SPAWN_SETSCHEDULER: c_short = 0x08;
3945-
pub const POSIX_SPAWN_SETSIGDEF: c_short = 0x10;
3946-
pub const POSIX_SPAWN_SETSIGMASK: c_short = 0x20;
3947-
39483939
// Flags for chflags(2)
39493940
pub const UF_SYSTEM: c_ulong = 0x00000080;
39503941
pub const UF_SPARSE: c_ulong = 0x00000100;
@@ -5160,9 +5151,6 @@ extern "C" {
51605151
sevp: *mut sigevent,
51615152
) -> c_int;
51625153

5163-
pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int;
5164-
pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int;
5165-
51665154
pub fn getutxuser(user: *const c_char) -> *mut utmpx;
51675155
pub fn setutxdb(_type: c_int, file: *const c_char) -> c_int;
51685156

@@ -5196,80 +5184,6 @@ extern "C" {
51965184

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

5199-
pub fn posix_spawn(
5200-
pid: *mut crate::pid_t,
5201-
path: *const c_char,
5202-
file_actions: *const crate::posix_spawn_file_actions_t,
5203-
attrp: *const crate::posix_spawnattr_t,
5204-
argv: *const *mut c_char,
5205-
envp: *const *mut c_char,
5206-
) -> c_int;
5207-
pub fn posix_spawnp(
5208-
pid: *mut crate::pid_t,
5209-
file: *const c_char,
5210-
file_actions: *const crate::posix_spawn_file_actions_t,
5211-
attrp: *const crate::posix_spawnattr_t,
5212-
argv: *const *mut c_char,
5213-
envp: *const *mut c_char,
5214-
) -> c_int;
5215-
pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> c_int;
5216-
pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> c_int;
5217-
pub fn posix_spawnattr_getsigdefault(
5218-
attr: *const posix_spawnattr_t,
5219-
default: *mut crate::sigset_t,
5220-
) -> c_int;
5221-
pub fn posix_spawnattr_setsigdefault(
5222-
attr: *mut posix_spawnattr_t,
5223-
default: *const crate::sigset_t,
5224-
) -> c_int;
5225-
pub fn posix_spawnattr_getsigmask(
5226-
attr: *const posix_spawnattr_t,
5227-
default: *mut crate::sigset_t,
5228-
) -> c_int;
5229-
pub fn posix_spawnattr_setsigmask(
5230-
attr: *mut posix_spawnattr_t,
5231-
default: *const crate::sigset_t,
5232-
) -> c_int;
5233-
pub fn posix_spawnattr_getflags(attr: *const posix_spawnattr_t, flags: *mut c_short) -> c_int;
5234-
pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: c_short) -> c_int;
5235-
pub fn posix_spawnattr_getpgroup(
5236-
attr: *const posix_spawnattr_t,
5237-
flags: *mut crate::pid_t,
5238-
) -> c_int;
5239-
pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::pid_t) -> c_int;
5240-
pub fn posix_spawnattr_getschedpolicy(
5241-
attr: *const posix_spawnattr_t,
5242-
flags: *mut c_int,
5243-
) -> c_int;
5244-
pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: c_int) -> c_int;
5245-
pub fn posix_spawnattr_getschedparam(
5246-
attr: *const posix_spawnattr_t,
5247-
param: *mut crate::sched_param,
5248-
) -> c_int;
5249-
pub fn posix_spawnattr_setschedparam(
5250-
attr: *mut posix_spawnattr_t,
5251-
param: *const crate::sched_param,
5252-
) -> c_int;
5253-
5254-
pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> c_int;
5255-
pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> c_int;
5256-
pub fn posix_spawn_file_actions_addopen(
5257-
actions: *mut posix_spawn_file_actions_t,
5258-
fd: c_int,
5259-
path: *const c_char,
5260-
oflag: c_int,
5261-
mode: crate::mode_t,
5262-
) -> c_int;
5263-
pub fn posix_spawn_file_actions_addclose(
5264-
actions: *mut posix_spawn_file_actions_t,
5265-
fd: c_int,
5266-
) -> c_int;
5267-
pub fn posix_spawn_file_actions_adddup2(
5268-
actions: *mut posix_spawn_file_actions_t,
5269-
fd: c_int,
5270-
newfd: c_int,
5271-
) -> c_int;
5272-
52735187
pub fn uuidgen(store: *mut uuid, count: c_int) -> c_int;
52745188

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

src/unix/bsd/freebsdlike/mod.rs

+87
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,13 @@ 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+
pub const POSIX_SPAWN_RESETIDS: c_short = 0x01;
1488+
pub const POSIX_SPAWN_SETPGROUP: c_short = 0x02;
1489+
pub const POSIX_SPAWN_SETSCHEDPARAM: c_short = 0x04;
1490+
pub const POSIX_SPAWN_SETSCHEDULER: c_short = 0x08;
1491+
pub const POSIX_SPAWN_SETSIGDEF: c_short = 0x10;
1492+
pub const POSIX_SPAWN_SETSIGMASK: c_short = 0x20;
1493+
14841494
safe_f! {
14851495
pub {const} fn WIFCONTINUED(status: c_int) -> bool {
14861496
status == 0x13
@@ -1792,6 +1802,83 @@ extern "C" {
17921802
search_path: *const c_char,
17931803
argv: *const *mut c_char,
17941804
) -> c_int;
1805+
1806+
pub fn mkostemp(template: *mut c_char, flags: c_int) -> c_int;
1807+
pub fn mkostemps(template: *mut c_char, suffixlen: c_int, flags: c_int) -> c_int;
1808+
1809+
pub fn posix_spawn(
1810+
pid: *mut crate::pid_t,
1811+
path: *const c_char,
1812+
file_actions: *const crate::posix_spawn_file_actions_t,
1813+
attrp: *const crate::posix_spawnattr_t,
1814+
argv: *const *mut c_char,
1815+
envp: *const *mut c_char,
1816+
) -> c_int;
1817+
pub fn posix_spawnp(
1818+
pid: *mut crate::pid_t,
1819+
file: *const c_char,
1820+
file_actions: *const crate::posix_spawn_file_actions_t,
1821+
attrp: *const crate::posix_spawnattr_t,
1822+
argv: *const *mut c_char,
1823+
envp: *const *mut c_char,
1824+
) -> c_int;
1825+
pub fn posix_spawnattr_init(attr: *mut posix_spawnattr_t) -> c_int;
1826+
pub fn posix_spawnattr_destroy(attr: *mut posix_spawnattr_t) -> c_int;
1827+
pub fn posix_spawnattr_getsigdefault(
1828+
attr: *const posix_spawnattr_t,
1829+
default: *mut crate::sigset_t,
1830+
) -> c_int;
1831+
pub fn posix_spawnattr_setsigdefault(
1832+
attr: *mut posix_spawnattr_t,
1833+
default: *const crate::sigset_t,
1834+
) -> c_int;
1835+
pub fn posix_spawnattr_getsigmask(
1836+
attr: *const posix_spawnattr_t,
1837+
default: *mut crate::sigset_t,
1838+
) -> c_int;
1839+
pub fn posix_spawnattr_setsigmask(
1840+
attr: *mut posix_spawnattr_t,
1841+
default: *const crate::sigset_t,
1842+
) -> c_int;
1843+
pub fn posix_spawnattr_getflags(attr: *const posix_spawnattr_t, flags: *mut c_short) -> c_int;
1844+
pub fn posix_spawnattr_setflags(attr: *mut posix_spawnattr_t, flags: c_short) -> c_int;
1845+
pub fn posix_spawnattr_getpgroup(
1846+
attr: *const posix_spawnattr_t,
1847+
flags: *mut crate::pid_t,
1848+
) -> c_int;
1849+
pub fn posix_spawnattr_setpgroup(attr: *mut posix_spawnattr_t, flags: crate::pid_t) -> c_int;
1850+
pub fn posix_spawnattr_getschedpolicy(
1851+
attr: *const posix_spawnattr_t,
1852+
flags: *mut c_int,
1853+
) -> c_int;
1854+
pub fn posix_spawnattr_setschedpolicy(attr: *mut posix_spawnattr_t, flags: c_int) -> c_int;
1855+
pub fn posix_spawnattr_getschedparam(
1856+
attr: *const posix_spawnattr_t,
1857+
param: *mut crate::sched_param,
1858+
) -> c_int;
1859+
pub fn posix_spawnattr_setschedparam(
1860+
attr: *mut posix_spawnattr_t,
1861+
param: *const crate::sched_param,
1862+
) -> c_int;
1863+
1864+
pub fn posix_spawn_file_actions_init(actions: *mut posix_spawn_file_actions_t) -> c_int;
1865+
pub fn posix_spawn_file_actions_destroy(actions: *mut posix_spawn_file_actions_t) -> c_int;
1866+
pub fn posix_spawn_file_actions_addopen(
1867+
actions: *mut posix_spawn_file_actions_t,
1868+
fd: c_int,
1869+
path: *const c_char,
1870+
oflag: c_int,
1871+
mode: crate::mode_t,
1872+
) -> c_int;
1873+
pub fn posix_spawn_file_actions_addclose(
1874+
actions: *mut posix_spawn_file_actions_t,
1875+
fd: c_int,
1876+
) -> c_int;
1877+
pub fn posix_spawn_file_actions_adddup2(
1878+
actions: *mut posix_spawn_file_actions_t,
1879+
fd: c_int,
1880+
newfd: c_int,
1881+
) -> c_int;
17951882
}
17961883

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

0 commit comments

Comments
 (0)