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.
This commit is contained in:
@@ -9,7 +9,7 @@
|
|||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
use io;
|
use io;
|
||||||
use libc;
|
use libc::{self, size_t};
|
||||||
use mem;
|
use mem;
|
||||||
use ptr;
|
use ptr;
|
||||||
|
|
||||||
@@ -148,8 +148,8 @@ impl Process {
|
|||||||
use sys::process::zircon::*;
|
use sys::process::zircon::*;
|
||||||
|
|
||||||
let mut proc_info: zx_info_process_t = Default::default();
|
let mut proc_info: zx_info_process_t = Default::default();
|
||||||
let mut actual: zx_size_t = 0;
|
let mut actual: size_t = 0;
|
||||||
let mut avail: zx_size_t = 0;
|
let mut avail: size_t = 0;
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
zx_cvt(zx_object_wait_one(self.handle.raw(), ZX_TASK_TERMINATED,
|
zx_cvt(zx_object_wait_one(self.handle.raw(), ZX_TASK_TERMINATED,
|
||||||
@@ -171,8 +171,8 @@ impl Process {
|
|||||||
use sys::process::zircon::*;
|
use sys::process::zircon::*;
|
||||||
|
|
||||||
let mut proc_info: zx_info_process_t = Default::default();
|
let mut proc_info: zx_info_process_t = Default::default();
|
||||||
let mut actual: zx_size_t = 0;
|
let mut actual: size_t = 0;
|
||||||
let mut avail: zx_size_t = 0;
|
let mut avail: size_t = 0;
|
||||||
|
|
||||||
unsafe {
|
unsafe {
|
||||||
let status = zx_object_wait_one(self.handle.raw(), ZX_TASK_TERMINATED,
|
let status = zx_object_wait_one(self.handle.raw(), ZX_TASK_TERMINATED,
|
||||||
|
|||||||
@@ -15,15 +15,13 @@ use io;
|
|||||||
use os::raw::c_char;
|
use os::raw::c_char;
|
||||||
use u64;
|
use u64;
|
||||||
|
|
||||||
use libc::{c_int, c_void};
|
use libc::{c_int, c_void, size_t};
|
||||||
|
|
||||||
pub type zx_handle_t = i32;
|
pub type zx_handle_t = u32;
|
||||||
pub type zx_vaddr_t = usize;
|
pub type zx_vaddr_t = usize;
|
||||||
pub type zx_rights_t = u32;
|
pub type zx_rights_t = u32;
|
||||||
pub type zx_status_t = i32;
|
pub type zx_status_t = i32;
|
||||||
|
|
||||||
pub type zx_size_t = usize;
|
|
||||||
|
|
||||||
pub const ZX_HANDLE_INVALID: zx_handle_t = 0;
|
pub const ZX_HANDLE_INVALID: zx_handle_t = 0;
|
||||||
|
|
||||||
pub type zx_time_t = u64;
|
pub type zx_time_t = u64;
|
||||||
@@ -115,36 +113,37 @@ extern {
|
|||||||
pending: *mut zx_signals_t) -> zx_status_t;
|
pending: *mut zx_signals_t) -> zx_status_t;
|
||||||
|
|
||||||
pub fn zx_object_get_info(handle: zx_handle_t, topic: u32, buffer: *mut c_void,
|
pub fn zx_object_get_info(handle: zx_handle_t, topic: u32, buffer: *mut c_void,
|
||||||
buffer_size: zx_size_t, actual_size: *mut zx_size_t,
|
buffer_size: size_t, actual_size: *mut size_t,
|
||||||
avail: *mut zx_size_t) -> zx_status_t;
|
avail: *mut size_t) -> zx_status_t;
|
||||||
}
|
}
|
||||||
|
|
||||||
// From `enum special_handles` in system/ulib/launchpad/launchpad.c
|
// From `enum special_handles` in system/ulib/launchpad/launchpad.c
|
||||||
// HND_LOADER_SVC = 0
|
// HND_LOADER_SVC = 0
|
||||||
// HND_EXEC_VMO = 1
|
// HND_EXEC_VMO = 1
|
||||||
pub const HND_SPECIAL_COUNT: usize = 2;
|
// HND_SEGMENTS_VMAR = 2
|
||||||
|
const HND_SPECIAL_COUNT: c_int = 3;
|
||||||
|
|
||||||
#[repr(C)]
|
#[repr(C)]
|
||||||
pub struct launchpad_t {
|
pub struct launchpad_t {
|
||||||
argc: u32,
|
argc: u32,
|
||||||
envc: u32,
|
envc: u32,
|
||||||
args: *const c_char,
|
args: *const c_char,
|
||||||
args_len: usize,
|
args_len: size_t,
|
||||||
env: *const c_char,
|
env: *const c_char,
|
||||||
env_len: usize,
|
env_len: size_t,
|
||||||
|
|
||||||
handles: *mut zx_handle_t,
|
handles: *mut zx_handle_t,
|
||||||
handles_info: *mut u32,
|
handles_info: *mut u32,
|
||||||
handle_count: usize,
|
handle_count: size_t,
|
||||||
handle_alloc: usize,
|
handle_alloc: size_t,
|
||||||
|
|
||||||
entry: zx_vaddr_t,
|
entry: zx_vaddr_t,
|
||||||
base: zx_vaddr_t,
|
base: zx_vaddr_t,
|
||||||
vdso_base: zx_vaddr_t,
|
vdso_base: zx_vaddr_t,
|
||||||
|
|
||||||
stack_size: usize,
|
stack_size: size_t,
|
||||||
|
|
||||||
special_handles: [zx_handle_t; HND_SPECIAL_COUNT],
|
special_handles: [zx_handle_t; HND_SPECIAL_COUNT as usize],
|
||||||
loader_message: bool,
|
loader_message: bool,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user