Use ctypes in native function declarations

This commit is contained in:
Haitao Li
2012-01-16 18:21:01 +08:00
parent f03eb96f39
commit dde41869ce
17 changed files with 252 additions and 223 deletions

View File

@@ -33,7 +33,7 @@ native mod rustrt {
target_task: task::task, target_port: port_id,
data: T) -> ctypes::uintptr_t;
fn new_port(unit_sz: uint) -> *rust_port;
fn new_port(unit_sz: ctypes::size_t) -> *rust_port;
fn del_port(po: *rust_port);
fn rust_port_detach(po: *rust_port);
fn get_port_id(po: *rust_port) -> port_id;

View File

@@ -6,7 +6,7 @@ Unsafe pointer utility functions
#[abi = "rust-intrinsic"]
native mod rusti {
fn addr_of<T>(val: T) -> *T;
fn ptr_offset<T>(ptr: *T, count: uint) -> *T;
fn ptr_offset<T>(ptr: *T, count: ctypes::uintptr_t) -> *T;
}
/*

View File

@@ -16,12 +16,12 @@ native mod rustrt {
// available outside this crate. Otherwise it's
// visible-in-crate, but not re-exported.
fn last_os_error() -> str;
fn refcount<T>(t: @T) -> uint;
fn refcount<T>(t: @T) -> ctypes::intptr_t;
fn do_gc();
fn unsupervise();
fn shape_log_str<T>(t: *sys::type_desc, data: T) -> str;
fn rust_set_exit_status(code: int);
fn set_min_stack(size: uint);
fn rust_set_exit_status(code: ctypes::intptr_t);
fn set_min_stack(size: ctypes::uintptr_t);
}
#[abi = "rust-intrinsic"]
@@ -103,7 +103,7 @@ fn log_str<T>(t: T) -> str {
with the default failure status."
)]
fn set_exit_status(code: int) {
rustrt::rust_set_exit_status(code);
rustrt::rust_set_exit_status(code as ctypes::intptr_t);
}
// FIXME: #1495 - This shouldn't exist

View File

@@ -55,7 +55,7 @@ export try;
#[abi = "rust-intrinsic"]
native mod rusti {
// these must run on the Rust stack so that they can swap stacks etc:
fn task_sleep(task: *rust_task, time_in_us: uint, &killed: bool);
fn task_sleep(task: *rust_task, time_in_us: c::size_t, &killed: bool);
}
type rust_closure = {

View File

@@ -8,17 +8,17 @@ import ptr::addr_of;
#[abi = "rust-intrinsic"]
native mod rusti {
fn vec_len<T>(&&v: [const T]) -> uint;
fn vec_len<T>(&&v: [const T]) -> ctypes::size_t;
}
#[abi = "cdecl"]
native mod rustrt {
fn vec_reserve_shared<T>(t: *sys::type_desc,
&v: [const T],
n: uint);
n: ctypes::size_t);
fn vec_from_buf_shared<T>(t: *sys::type_desc,
ptr: *T,
count: uint) -> [T];
count: ctypes::size_t) -> [T];
}
/*