Skip to content

Commit

Permalink
Remove some uses of types provided by libc
Browse files Browse the repository at this point in the history
  • Loading branch information
thedataking committed Jul 14, 2023
1 parent 942ce1e commit 77a08f2
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 87 deletions.
1 change: 0 additions & 1 deletion c2rust-lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,6 @@ pub mod include {
pub mod stddef;
pub mod stdint;
pub mod stdio;
pub mod time;
} // mod include
pub mod src {
pub mod align;
Expand Down
12 changes: 0 additions & 12 deletions include/time.rs

This file was deleted.

80 changes: 19 additions & 61 deletions tests/seek_stress.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,25 @@ extern crate c2rust_out;
use c2rust_out::include::dav1d::common::Dav1dDataProps;
use c2rust_out::include::dav1d::common::Dav1dUserData;
use c2rust_out::include::dav1d::data::Dav1dData;
use c2rust_out::include::dav1d::headers::Dav1dFilterMode;
use c2rust_out::include::dav1d::headers::Dav1dRestorationType;
use c2rust_out::include::dav1d::headers::Dav1dSequenceHeader;
use c2rust_out::include::dav1d::headers::Dav1dSequenceHeaderOperatingParameterInfo;
use c2rust_out::include::dav1d::headers::Dav1dSequenceHeaderOperatingPoint;
use c2rust_out::include::dav1d::headers::Dav1dTxfmMode;
use c2rust_out::include::dav1d::headers::Dav1dWarpedMotionType;
use c2rust_out::include::dav1d::headers::DAV1D_OFF;
use c2rust_out::include::stddef::ptrdiff_t;
use c2rust_out::include::stddef::size_t;
use c2rust_out::include::stdint::int16_t;
use c2rust_out::include::stdint::int32_t;
use c2rust_out::include::stdint::int64_t;
use c2rust_out::include::stdint::int8_t;
use c2rust_out::include::stdint::uint16_t;
use c2rust_out::include::stdint::uint32_t;
use c2rust_out::include::stdint::uint64_t;
use c2rust_out::include::stdint::uint8_t;
use c2rust_out::include::stdint::uintptr_t;
use c2rust_out::src::r#ref::Dav1dRef;
use c2rust_out::stderr;
extern "C" {
Expand All @@ -32,7 +48,7 @@ extern "C" {
fn dav1d_parse_sequence_header(
out: *mut Dav1dSequenceHeader,
buf: *const uint8_t,
sz: size_t,
sz: libc::size_t,
) -> libc::c_int;
fn dav1d_send_data(c: *mut Dav1dContext, in_0: *mut Dav1dData) -> libc::c_int;
fn dav1d_get_picture(c: *mut Dav1dContext, out: *mut Dav1dPicture) -> libc::c_int;
Expand All @@ -56,7 +72,6 @@ extern "C" {
cli_settings: *mut CLISettings,
lib_settings: *mut Dav1dSettings,
);
fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> libc::c_int;
}
#[derive(Copy, Clone)]
#[repr(C)]
Expand All @@ -66,63 +81,6 @@ pub struct __va_list_tag {
pub overflow_arg_area: *mut libc::c_void,
pub reg_save_area: *mut libc::c_void,
}
pub type __int8_t = i8;
pub type __uint8_t = u8;
pub type __int16_t = i16;
pub type __uint16_t = u16;
pub type __int32_t = i32;
pub type __uint32_t = u32;
pub type __int64_t = i64;
pub type __uint64_t = u64;
pub type __off_t = libc::off_t;
pub type __time_t = libc::time_t;
pub type __clockid_t = libc::clockid_t;
pub type __syscall_slong_t = libc::c_long;
pub type size_t = libc::size_t;
pub type clockid_t = __clockid_t;
pub type int8_t = __int8_t;
pub type int16_t = __int16_t;
pub type int32_t = __int32_t;
pub type int64_t = __int64_t;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct timespec {
pub tv_sec: __time_t,
pub tv_nsec: __syscall_slong_t,
}
pub type ptrdiff_t = libc::ptrdiff_t;
pub type uint8_t = __uint8_t;
pub type uint16_t = __uint16_t;
pub type uint32_t = __uint32_t;
pub type uint64_t = __uint64_t;
pub type uintptr_t = libc::uintptr_t;
pub type Dav1dTxfmMode = libc::c_uint;
pub const DAV1D_N_TX_MODES: Dav1dTxfmMode = 3;
pub const DAV1D_TX_SWITCHABLE: Dav1dTxfmMode = 2;
pub const DAV1D_TX_LARGEST: Dav1dTxfmMode = 1;
pub const DAV1D_TX_4X4_ONLY: Dav1dTxfmMode = 0;
pub type Dav1dFilterMode = libc::c_uint;
pub const DAV1D_FILTER_SWITCHABLE: Dav1dFilterMode = 4;
pub const DAV1D_N_FILTERS: Dav1dFilterMode = 4;
pub const DAV1D_FILTER_BILINEAR: Dav1dFilterMode = 3;
pub const DAV1D_N_SWITCHABLE_FILTERS: Dav1dFilterMode = 3;
pub const DAV1D_FILTER_8TAP_SHARP: Dav1dFilterMode = 2;
pub const DAV1D_FILTER_8TAP_SMOOTH: Dav1dFilterMode = 1;
pub const DAV1D_FILTER_8TAP_REGULAR: Dav1dFilterMode = 0;
pub type Dav1dAdaptiveBoolean = libc::c_uint;
pub const DAV1D_ADAPTIVE: Dav1dAdaptiveBoolean = 2;
pub const DAV1D_ON: Dav1dAdaptiveBoolean = 1;
pub const DAV1D_OFF: Dav1dAdaptiveBoolean = 0;
pub type Dav1dRestorationType = libc::c_uint;
pub const DAV1D_RESTORATION_SGRPROJ: Dav1dRestorationType = 3;
pub const DAV1D_RESTORATION_WIENER: Dav1dRestorationType = 2;
pub const DAV1D_RESTORATION_SWITCHABLE: Dav1dRestorationType = 1;
pub const DAV1D_RESTORATION_NONE: Dav1dRestorationType = 0;
pub type Dav1dWarpedMotionType = libc::c_uint;
pub const DAV1D_WM_TYPE_AFFINE: Dav1dWarpedMotionType = 3;
pub const DAV1D_WM_TYPE_ROT_ZOOM: Dav1dWarpedMotionType = 2;
pub const DAV1D_WM_TYPE_TRANSLATION: Dav1dWarpedMotionType = 1;
pub const DAV1D_WM_TYPE_IDENTITY: Dav1dWarpedMotionType = 0;
#[derive(Copy, Clone)]
#[repr(C)]
pub struct Dav1dWarpedMotionParams {
Expand Down Expand Up @@ -550,11 +508,11 @@ pub const REALTIME_CUSTOM: CLISettings_realtime = 2;
pub const REALTIME_INPUT: CLISettings_realtime = 1;
pub const REALTIME_DISABLE: CLISettings_realtime = 0;
unsafe extern "C" fn get_seed() -> libc::c_uint {
let mut ts: timespec = timespec {
let mut ts: libc::timespec = libc::timespec {
tv_sec: 0,
tv_nsec: 0,
};
clock_gettime(1, &mut ts);
libc::clock_gettime(1, &mut ts);
return (1000000000 as libc::c_ulonglong)
.wrapping_mul(ts.tv_sec as libc::c_ulonglong)
.wrapping_add(ts.tv_nsec as libc::c_ulonglong) as libc::c_uint;
Expand Down
21 changes: 8 additions & 13 deletions tools/dav1d.rs
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,6 @@ extern "C" {
fn strcmp(_: *const libc::c_char, _: *const libc::c_char) -> libc::c_int;
fn strerror(_: libc::c_int) -> *mut libc::c_char;
fn strcpy(_: *mut libc::c_char, _: *const libc::c_char) -> *mut libc::c_char;
fn nanosleep(__requested_time: *const timespec, __remaining: *mut timespec) -> libc::c_int;
fn clock_gettime(__clock_id: clockid_t, __tp: *mut timespec) -> libc::c_int;
fn isatty(__fd: libc::c_int) -> libc::c_int;
fn dav1d_data_unref(data: *mut Dav1dData);
fn dav1d_close(c_out: *mut *mut Dav1dContext);
Expand Down Expand Up @@ -76,10 +74,6 @@ extern "C" {
lib_settings: *mut Dav1dSettings,
);
}
use crate::include::time::__syscall_slong_t;
use crate::include::time::clockid_t;
use crate::include::time::time_t;
use crate::include::time::timespec;

use crate::include::dav1d::common::Dav1dDataProps;
use crate::include::dav1d::common::Dav1dUserData;
Expand Down Expand Up @@ -152,24 +146,25 @@ pub const REALTIME_CUSTOM: CLISettings_realtime = 2;
pub const REALTIME_INPUT: CLISettings_realtime = 1;
pub const REALTIME_DISABLE: CLISettings_realtime = 0;
unsafe extern "C" fn get_time_nanos() -> uint64_t {
let mut ts: timespec = timespec {
let mut ts: libc::timespec = libc::timespec {
tv_sec: 0,
tv_nsec: 0,
};
clock_gettime(1 as libc::c_int, &mut ts);
libc::clock_gettime(1 as libc::c_int, &mut ts);
return (1000000000 as libc::c_ulonglong)
.wrapping_mul(ts.tv_sec as libc::c_ulonglong)
.wrapping_add(ts.tv_nsec as libc::c_ulonglong) as uint64_t;
}
unsafe extern "C" fn sleep_nanos(mut d: uint64_t) {
let ts: timespec = {
let mut init = timespec {
tv_sec: d.wrapping_div(1000000000 as uint64_t) as time_t,
tv_nsec: d.wrapping_rem(1000000000 as uint64_t) as __syscall_slong_t,
// TODO: C version has Windows specific code path
let ts: libc::timespec = {
let mut init = libc::timespec {
tv_sec: d as libc::time_t / 1000000000,
tv_nsec: d as libc::time_t % 1000000000,
};
init
};
nanosleep(&ts, 0 as *mut timespec);
libc::nanosleep(&ts, std::ptr::null_mut::<libc::timespec>());
}
unsafe extern "C" fn synchronize(
realtime: libc::c_int,
Expand Down

0 comments on commit 77a08f2

Please sign in to comment.