| 1 | /* $NetBSD: linux32_sched.h,v 1.1 2011/11/18 04:08:56 christos Exp $ */ |
| 2 | |
| 3 | /*- |
| 4 | * Copyright (c) 1999 The NetBSD Foundation, Inc. |
| 5 | * All rights reserved. |
| 6 | * |
| 7 | * This code is derived from software contributed to The NetBSD Foundation |
| 8 | * by Jason R. Thorpe of the Numerical Aerospace Simulation Facility, |
| 9 | * NASA Ames Research Center. |
| 10 | * |
| 11 | * Redistribution and use in source and binary forms, with or without |
| 12 | * modification, are permitted provided that the following conditions |
| 13 | * are met: |
| 14 | * 1. Redistributions of source code must retain the above copyright |
| 15 | * notice, this list of conditions and the following disclaimer. |
| 16 | * 2. Redistributions in binary form must reproduce the above copyright |
| 17 | * notice, this list of conditions and the following disclaimer in the |
| 18 | * documentation and/or other materials provided with the distribution. |
| 19 | * |
| 20 | * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS |
| 21 | * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED |
| 22 | * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| 23 | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS |
| 24 | * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
| 25 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
| 26 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
| 27 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
| 28 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
| 29 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
| 30 | * POSSIBILITY OF SUCH DAMAGE. |
| 31 | */ |
| 32 | |
| 33 | #ifndef _LINUX32_SCHED_H |
| 34 | #define _LINUX32_SCHED_H |
| 35 | |
| 36 | /* |
| 37 | * Flags passed to the Linux __clone(2) system call. |
| 38 | */ |
| 39 | #define LINUX32_CLONE_CSIGNAL 0x000000ff /* signal to be sent at exit */ |
| 40 | #define LINUX32_CLONE_VM 0x00000100 /* share address space */ |
| 41 | #define LINUX32_CLONE_FS 0x00000200 /* share "file system" info */ |
| 42 | #define LINUX32_CLONE_FILES 0x00000400 /* share file descriptors */ |
| 43 | #define LINUX32_CLONE_SIGHAND 0x00000800 /* share signal actions */ |
| 44 | #define LINUX32_CLONE_PID 0x00001000 /* share process ID */ |
| 45 | #define LINUX32_CLONE_PTRACE 0x00002000 /* ptrace(2) continues on |
| 46 | child */ |
| 47 | #define LINUX32_CLONE_VFORK 0x00004000 /* parent blocks until child |
| 48 | exits */ |
| 49 | #define LINUX32_CLONE_PARENT 0x00008000 /* want same parent as cloner */ |
| 50 | #define LINUX32_CLONE_THREAD 0x00010000 /* same thread group */ |
| 51 | #define LINUX32_CLONE_NEWNS 0x00020000 /* new namespace group */ |
| 52 | #define LINUX32_CLONE_SYSVSEM 0x00040000 /* share SysV SEM_UNDO */ |
| 53 | #define LINUX32_CLONE_SETTLS 0x00080000 /* create new TLS for child */ |
| 54 | #define LINUX32_CLONE_PARENT_SETTID \ |
| 55 | 0x00100000 /* set TID in the parent */ |
| 56 | #define LINUX32_CLONE_CHILD_CLEARTID \ |
| 57 | 0x00200000 /* clear TID in the child */ |
| 58 | #define LINUX32_CLONE_DETACHED 0x00400000 /* unused */ |
| 59 | #define LINUX32_CLONE_UNTRACED 0x00800000 /* set if parent cannot force CLONE_PTRACE */ |
| 60 | #define LINUX32_CLONE_CHILD_SETTID \ |
| 61 | 0x01000000 /* set TID in the child */ |
| 62 | #define LINUX32_CLONE_STOPPED 0x02000000 /* start in stopped state */ |
| 63 | |
| 64 | struct linux32_sched_param { |
| 65 | int sched_priority; |
| 66 | }; |
| 67 | |
| 68 | #define LINUX32_SCHED_OTHER 0 |
| 69 | #define LINUX32_SCHED_FIFO 1 |
| 70 | #define LINUX32_SCHED_RR 2 |
| 71 | |
| 72 | struct linux32_timespec { |
| 73 | linux32_time_t tv_sec; /* seconds */ |
| 74 | int tv_nsec; /* nanoseconds */ |
| 75 | }; |
| 76 | |
| 77 | #define LINUX32_CLOCK_REALTIME 0 |
| 78 | #define LINUX32_CLOCK_MONOTONIC 1 |
| 79 | #define LINUX32_CLOCK_PROCESS_CPUTIME_ID 2 |
| 80 | #define LINUX32_CLOCK_THREAD_CPUTIME_ID 3 |
| 81 | #define LINUX32_CLOCK_REALTIME_HR 4 |
| 82 | #define LINUX32_CLOCK_MONOTONIC_HR 5 |
| 83 | |
| 84 | int linux32_to_native_clockid(clockid_t *, clockid_t); |
| 85 | void native_to_linux32_timespec(struct linux32_timespec *, struct timespec *); |
| 86 | void linux32_to_native_timespec(struct timespec *, struct linux32_timespec *); |
| 87 | |
| 88 | #endif /* _LINUX32_SCHED_H */ |
| 89 | |