Skip to content

Commit 150b625

Browse files
committed
Auto merge of #45030 - raggi:zircon-handle-t, r=alexcrichton
zircon: the type of zx_handle_t is now unsigned This is a kernel ABI change that landed today. I noticed some other ABI issues and have left a note to cleanup once they are better defined.
2 parents 650b1b1 + fb03bb7 commit 150b625

File tree

2 files changed

+17
-18
lines changed

2 files changed

+17
-18
lines changed

src/libstd/sys/unix/process/process_fuchsia.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
// except according to those terms.
1010

1111
use io;
12-
use libc;
12+
use libc::{self, size_t};
1313
use mem;
1414
use ptr;
1515

@@ -148,8 +148,8 @@ impl Process {
148148
use sys::process::zircon::*;
149149

150150
let mut proc_info: zx_info_process_t = Default::default();
151-
let mut actual: zx_size_t = 0;
152-
let mut avail: zx_size_t = 0;
151+
let mut actual: size_t = 0;
152+
let mut avail: size_t = 0;
153153

154154
unsafe {
155155
zx_cvt(zx_object_wait_one(self.handle.raw(), ZX_TASK_TERMINATED,
@@ -171,8 +171,8 @@ impl Process {
171171
use sys::process::zircon::*;
172172

173173
let mut proc_info: zx_info_process_t = Default::default();
174-
let mut actual: zx_size_t = 0;
175-
let mut avail: zx_size_t = 0;
174+
let mut actual: size_t = 0;
175+
let mut avail: size_t = 0;
176176

177177
unsafe {
178178
let status = zx_object_wait_one(self.handle.raw(), ZX_TASK_TERMINATED,

src/libstd/sys/unix/process/zircon.rs

+12-13
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,13 @@ use io;
1515
use os::raw::c_char;
1616
use u64;
1717

18-
use libc::{c_int, c_void};
18+
use libc::{c_int, c_void, size_t};
1919

20-
pub type zx_handle_t = i32;
20+
pub type zx_handle_t = u32;
2121
pub type zx_vaddr_t = usize;
2222
pub type zx_rights_t = u32;
2323
pub type zx_status_t = i32;
2424

25-
pub type zx_size_t = usize;
26-
2725
pub const ZX_HANDLE_INVALID: zx_handle_t = 0;
2826

2927
pub type zx_time_t = u64;
@@ -115,36 +113,37 @@ extern {
115113
pending: *mut zx_signals_t) -> zx_status_t;
116114

117115
pub fn zx_object_get_info(handle: zx_handle_t, topic: u32, buffer: *mut c_void,
118-
buffer_size: zx_size_t, actual_size: *mut zx_size_t,
119-
avail: *mut zx_size_t) -> zx_status_t;
116+
buffer_size: size_t, actual_size: *mut size_t,
117+
avail: *mut size_t) -> zx_status_t;
120118
}
121119

122120
// From `enum special_handles` in system/ulib/launchpad/launchpad.c
123121
// HND_LOADER_SVC = 0
124122
// HND_EXEC_VMO = 1
125-
pub const HND_SPECIAL_COUNT: usize = 2;
123+
// HND_SEGMENTS_VMAR = 2
124+
const HND_SPECIAL_COUNT: c_int = 3;
126125

127126
#[repr(C)]
128127
pub struct launchpad_t {
129128
argc: u32,
130129
envc: u32,
131130
args: *const c_char,
132-
args_len: usize,
131+
args_len: size_t,
133132
env: *const c_char,
134-
env_len: usize,
133+
env_len: size_t,
135134

136135
handles: *mut zx_handle_t,
137136
handles_info: *mut u32,
138-
handle_count: usize,
139-
handle_alloc: usize,
137+
handle_count: size_t,
138+
handle_alloc: size_t,
140139

141140
entry: zx_vaddr_t,
142141
base: zx_vaddr_t,
143142
vdso_base: zx_vaddr_t,
144143

145-
stack_size: usize,
144+
stack_size: size_t,
146145

147-
special_handles: [zx_handle_t; HND_SPECIAL_COUNT],
146+
special_handles: [zx_handle_t; HND_SPECIAL_COUNT as usize],
148147
loader_message: bool,
149148
}
150149

0 commit comments

Comments
 (0)