Skip to content
Snippets Groups Projects
Verified Commit 50eab436 authored by Dan Robertson's avatar Dan Robertson Committed by Dan Robertson
Browse files

Add signal.h

Create stubs for signal.h
parent 1b1ff5c7
No related branches found
No related tags found
No related merge requests found
...@@ -278,6 +278,7 @@ dependencies = [ ...@@ -278,6 +278,7 @@ dependencies = [
"platform 0.1.0", "platform 0.1.0",
"resource 0.1.0", "resource 0.1.0",
"semaphore 0.1.0", "semaphore 0.1.0",
"signal 0.1.0",
"stat 0.1.0", "stat 0.1.0",
"stdio 0.1.0", "stdio 0.1.0",
"stdlib 0.1.0", "stdlib 0.1.0",
...@@ -434,6 +435,14 @@ dependencies = [ ...@@ -434,6 +435,14 @@ dependencies = [
"serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.27 (registry+https://github.com/rust-lang/crates.io-index)",
] ]
[[package]]
name = "signal"
version = "0.1.0"
dependencies = [
"cbindgen 0.5.0",
"platform 0.1.0",
]
[[package]] [[package]]
name = "smallvec" name = "smallvec"
version = "0.6.0" version = "0.6.0"
......
...@@ -22,6 +22,7 @@ semaphore = { path = "src/semaphore" } ...@@ -22,6 +22,7 @@ semaphore = { path = "src/semaphore" }
mman = { path = "src/mman" } mman = { path = "src/mman" }
platform = { path = "src/platform" } platform = { path = "src/platform" }
resource = { path = "src/resource" } resource = { path = "src/resource" }
signal = { path = "src/signal" }
stat = { path = "src/stat" } stat = { path = "src/stat" }
stdio = { path = "src/stdio" } stdio = { path = "src/stdio" }
stdlib = { path = "src/stdlib" } stdlib = { path = "src/stdlib" }
......
#ifndef _BITS_SIGNAL_H
#define _BITS_SIGNAL_H
typedef struct sigaction {
void (*sa_handler)(uintptr_t);
sigset_t sa_mask;
uintptr_t sa_flags;
};
#endif
#ifndef _BITS_TIMESPEC_H
#define _BITS_TIMESPEC_H
typedef struct { typedef struct {
time_t tv_sec; time_t tv_sec;
long tv_nsec; long tv_nsec;
} timespec; } timespec;
#endif
[package]
name = "signal"
version = "0.1.0"
authors = ["Dan Robertson <danlrobertson89@gmail.com>"]
build = "build.rs"
[build-dependencies]
cbindgen = { path = "../../cbindgen" }
[dependencies]
platform = { path = "../platform" }
extern crate cbindgen;
use std::{env, fs};
fn main() {
let crate_dir = env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR not set");
fs::create_dir_all("../../target/include").expect("failed to create include directory");
cbindgen::generate(crate_dir)
.expect("failed to generate bindings")
.write_to_file("../../target/include/signal.h");
}
sys_includes = ["sys/types.h"]
include_guard = "_SIGNAL_H"
trailer = "#include <bits/signal.h>"
language = "C"
[defines]
"target_os=linux" = "__linux__"
"target_os=redox" = "__redox__"
[enum]
prefix_with_name = true
//! signal implementation for Redox, following http://pubs.opengroup.org/onlinepubs/7908799/xsh/signal.h.html
#![no_std]
extern crate platform;
#[cfg(target_os = "linux")]
#[path = "linux.rs"]
pub mod sys;
#[cfg(target_os = "redox")]
#[path = "redox.rs"]
pub mod sys;
pub use sys::*;
use platform::types::*;
#[repr(C)]
pub struct sigaction {
pub sa_handler: extern "C" fn(usize),
pub sa_mask: sigset_t,
pub sa_flags: usize,
}
#[no_mangle]
pub extern "C" fn kill(pid: pid_t, sig: c_int) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn killpg(pgrp: pid_t, sig: c_int) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn raise(sig: c_int) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigaction(sig: c_int, act: *const sigaction, oact: *const sigaction) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigaddset(set: *mut sigset_t, signo: c_int) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigdelset(set: *mut sigset_t, signo: c_int) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigemptyset(set: *mut sigset_t) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigfillset(set: *mut sigset_t) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sighold(sig: c_int) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigignore(sig: c_int) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn siginterrupt(sig: c_int, flag: c_int) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigismember(set: *const sigset_t, signo: c_int) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn signal(sig: c_int, func: fn(c_int)) -> fn(c_int) {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigpause(sig: c_int) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigpending(set: *mut sigset_t) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigprocmask(how: c_int, set: *const sigset_t, oset: *mut sigset_t) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigrelse(sig: c_int) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigset(sig: c_int, func: fn(c_int)) -> fn(c_int) {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigsuspend(sigmask: *const sigset_t) -> c_int {
unimplemented!();
}
#[no_mangle]
pub extern "C" fn sigwait(set: *const sigset_t, sig: *mut c_int) -> c_int {
unimplemented!();
}
#[repr(C)]
pub struct sigset_t {
pub bits: [u64; 16],
}
pub const SIGHUP: usize = 1;
pub const SIGINT: usize = 2;
pub const SIGQUIT: usize = 3;
pub const SIGILL: usize = 4;
pub const SIGTRAP: usize = 5;
pub const SIGABRT: usize = 6;
pub const SIGIOT: usize = SIGABRT;
pub const SIGBUS: usize = 7;
pub const SIGFPE: usize = 8;
pub const SIGKILL: usize = 9;
pub const SIGUSR1: usize = 10;
pub const SIGSEGV: usize = 11;
pub const SIGUSR2: usize = 12;
pub const SIGPIPE: usize = 13;
pub const SIGALRM: usize = 14;
pub const SIGTERM: usize = 15;
pub const SIGSTKFLT: usize = 16;
pub const SIGCHLD: usize = 17;
pub const SIGCONT: usize = 18;
pub const SIGSTOP: usize = 19;
pub const SIGTSTP: usize = 20;
pub const SIGTTIN: usize = 21;
pub const SIGTTOU: usize = 22;
pub const SIGURG: usize = 23;
pub const SIGXCPU: usize = 24;
pub const SIGXFSZ: usize = 25;
pub const SIGVTALRM: usize = 26;
pub const SIGPROF: usize = 27;
pub const SIGWINCH: usize = 28;
pub const SIGIO: usize = 29;
pub const SIGPOLL: usize = 29;
pub const SIGPWR: usize = 30;
pub const SIGSYS: usize = 31;
pub const SIGUNUSED: usize = SIGSYS;
pub const SA_NOCLDSTOP: usize = 1;
pub const SA_NOCLDWAIT: usize = 2;
pub const SA_SIGINFO: usize = 4;
pub const SA_ONSTACK: usize = 0x08000000;
pub const SA_RESTART: usize = 0x10000000;
pub const SA_NODEFER: usize = 0x40000000;
pub const SA_RESETHAND: usize = 0x80000000;
pub const SA_RESTORER: usize = 0x04000000;
#[repr(C)]
pub struct sigset_t {
pub bits: [u64; 2],
}
pub const SIGHUP: usize = 1;
pub const SIGINT: usize = 2;
pub const SIGQUIT: usize = 3;
pub const SIGILL: usize = 4;
pub const SIGTRAP: usize = 5;
pub const SIGBUS: usize = 7;
pub const SIGFPE: usize = 8;
pub const SIGKILL: usize = 9;
pub const SIGUSR1: usize = 10;
pub const SIGSEGV: usize = 11;
pub const SIGUSR2: usize = 12;
pub const SIGPIPE: usize = 13;
pub const SIGALRM: usize = 14;
pub const SIGTERM: usize = 15;
pub const SIGSTKFLT: usize = 16;
pub const SIGCHLD: usize = 17;
pub const SIGCONT: usize = 18;
pub const SIGSTOP: usize = 19;
pub const SIGTSTP: usize = 20;
pub const SIGTTIN: usize = 21;
pub const SIGTTOU: usize = 22;
pub const SIGURG: usize = 23;
pub const SIGXCPU: usize = 24;
pub const SIGXFSZ: usize = 25;
pub const SIGVTALRM: usize = 26;
pub const SIGPROF: usize = 27;
pub const SIGWINCH: usize = 28;
pub const SIGIO: usize = 29;
pub const SIGPWR: usize = 30;
pub const SIGSYS: usize = 31;
pub const SA_NOCLDSTOP: usize = 0x00000001;
pub const SA_NOCLDWAIT: usize = 0x00000002;
pub const SA_SIGINFO: usize = 0x00000004;
pub const SA_RESTORER: usize = 0x04000000;
pub const SA_ONSTACK: usize = 0x08000000;
pub const SA_RESTART: usize = 0x10000000;
pub const SA_NODEFER: usize = 0x40000000;
pub const SA_RESETHAND: usize = 0x80000000;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment