4 * \brief Common task related definitions.
7 * (c) 2008-2009 Adam Lackorzynski <adam@os.inf.tu-dresden.de>,
8 * Alexander Warg <warg@os.inf.tu-dresden.de>
9 * economic rights: Technische Universität Dresden (Germany)
11 * This file is part of TUD:OS and distributed under the terms of the
12 * GNU General Public License 2.
13 * Please see the COPYING-GPL-2 file for details.
15 * As a special exception, you may use this file as part of a free software
16 * library without restriction. Specifically, if other files instantiate
17 * templates or use macros or inline functions from this file, or you compile
18 * this file and link it with other files to produce an executable, this
19 * file does not by itself cause the resulting executable to be covered by
20 * the GNU General Public License. This exception does not however
21 * invalidate any other reasons why the executable file might be covered by
22 * the GNU General Public License.
27 #include <l4/sys/task.h>
28 #include <l4/sys/capability>
34 * \ingroup l4_task_api
36 * <c>\#include <l4/sys/task></c>
38 * \see \ref l4_task_api for an overview description.
41 class Task : public Kobject_t<Task, Kobject, L4_PROTO_TASK>
47 * \copydoc l4_task_map()
48 * \note \a dst_task is the implicit \a this pointer.
50 l4_msgtag_t map(Cap<Task> const &src_task,
51 l4_fpage_t const &snd_fpage, l4_addr_t snd_base,
52 l4_utcb_t *utcb = l4_utcb()) throw()
53 { return l4_task_map_u(cap(), src_task.cap(), snd_fpage, snd_base, utcb); }
56 * \copydoc l4_task_unmap()
57 * \note \a task is the implicit \a this pointer.
59 l4_msgtag_t unmap(l4_fpage_t const &fpage,
61 l4_utcb_t *utcb = l4_utcb()) throw()
62 { return l4_task_unmap_u(cap(), fpage, map_mask, utcb); }
65 * \copydoc l4_task_unmap_batch()
66 * \note \a task is the implicit \a this pointer.
68 l4_msgtag_t unmap_batch(l4_fpage_t const *fpages,
71 l4_utcb_t *utcb = l4_utcb()) throw()
72 { return l4_task_unmap_batch_u(cap(), fpages, num_fpages, map_mask, utcb); }
75 * \copydoc l4_task_cap_valid()
76 * \note \a task is the implicit \a this pointer.
78 l4_msgtag_t cap_valid(Cap<void> const &cap,
79 l4_utcb_t *utcb = l4_utcb()) throw()
80 { return l4_task_cap_valid_u(this->cap(), cap.cap(), utcb); }
83 * \copydoc l4_task_cap_has_child()
84 * \note \a task is the implicit \a this pointer.
86 l4_msgtag_t cap_has_child(Cap<void> const &cap,
87 l4_utcb_t *utcb = l4_utcb()) throw()
88 { return l4_task_cap_has_child_u(this->cap(), cap.cap(), utcb); }
91 * \copydoc l4_task_cap_equal()
92 * \note \a task is the implicit \a this pointer.
94 l4_msgtag_t cap_equal(Cap<void> const &cap_a,
95 Cap<void> const &cap_b,
96 l4_utcb_t *utcb = l4_utcb()) throw()
97 { return l4_task_cap_equal_u(cap(), cap_a.cap(), cap_b.cap(), utcb); }