Rev 1877 | Rev 1923 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1877 | Rev 1888 | ||
---|---|---|---|
Line 24... | Line 24... | ||
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
27 | */ |
27 | */ |
28 | 28 | ||
29 | /** @addtogroup genericipc |
29 | /** @addtogroup genericipc |
30 | * @{ |
30 | * @{ |
31 | */ |
31 | */ |
32 | /** @file |
32 | /** @file |
33 | */ |
33 | */ |
34 | 34 | ||
Line 164... | Line 164... | ||
164 | typedef struct answerbox_s answerbox_t; |
164 | typedef struct answerbox_s answerbox_t; |
165 | typedef struct phone_s phone_t; |
165 | typedef struct phone_s phone_t; |
166 | typedef struct { |
166 | typedef struct { |
167 | unative_t args[IPC_CALL_LEN]; |
167 | unative_t args[IPC_CALL_LEN]; |
168 | phone_t *phone; |
168 | phone_t *phone; |
169 | }ipc_data_t; |
169 | } ipc_data_t; |
170 | 170 | ||
171 | struct answerbox_s { |
171 | struct answerbox_s { |
172 | SPINLOCK_DECLARE(lock); |
172 | SPINLOCK_DECLARE(lock); |
173 | 173 | ||
174 | task_t *task; |
174 | task_t *task; |
Line 215... | Line 215... | ||
215 | answerbox_t *callerbox; |
215 | answerbox_t *callerbox; |
216 | 216 | ||
217 | unative_t private; /**< Private data to internal IPC */ |
217 | unative_t private; /**< Private data to internal IPC */ |
218 | 218 | ||
219 | ipc_data_t data; /**< Data passed from/to userspace */ |
219 | ipc_data_t data; /**< Data passed from/to userspace */ |
220 | }call_t; |
220 | } call_t; |
221 | 221 | ||
222 | extern void ipc_init(void); |
222 | extern void ipc_init(void); |
223 | extern call_t * ipc_wait_for_call(answerbox_t *box, uint32_t usec, int flags); |
223 | extern call_t * ipc_wait_for_call(answerbox_t *box, uint32_t usec, int flags); |
224 | extern void ipc_answer(answerbox_t *box, call_t *request); |
224 | extern void ipc_answer(answerbox_t *box, call_t *request); |
225 | extern int ipc_call(phone_t *phone, call_t *call); |
225 | extern int ipc_call(phone_t *phone, call_t *call); |