libspe2
0.9a
Main Page
Data Structures
Files
File List
Globals
speevent
speevent.h
Go to the documentation of this file.
1
/*
2
* libspe2 - A wrapper library to adapt the JSRE SPU usage model to SPUFS
3
* Copyright (C) 2005 IBM Corp.
4
*
5
* This library is free software; you can redistribute it and/or modify it
6
* under the terms of the GNU Lesser General Public License as published by
7
* the Free Software Foundation; either version 2.1 of the License,
8
* or (at your option) any later version.
9
*
10
* This library is distributed in the hope that it will be useful, but
11
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
12
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
13
* License for more details.
14
*
15
* You should have received a copy of the GNU Lesser General Public License
16
* along with this library; if not, write to the Free Software Foundation,
17
* Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
*/
19
20
21
22
#ifndef _SPEEVENT_H_
23
#define _SPEEVENT_H_
24
25
#include "
spebase.h
"
26
27
/* private constants */
28
enum
__spe_event_types
{
29
__SPE_EVENT_OUT_INTR_MBOX
,
__SPE_EVENT_IN_MBOX
,
30
__SPE_EVENT_TAG_GROUP
,
__SPE_EVENT_SPE_STOPPED
,
31
__NUM_SPE_EVENT_TYPES
32
};
33
34
/* private types */
35
typedef
struct
spe_context_event_priv
36
{
37
pthread_mutex_t
lock
;
38
pthread_mutex_t
stop_event_read_lock
;
39
int
stop_event_pipe
[2];
40
spe_event_unit_t
events
[
__NUM_SPE_EVENT_TYPES
];
41
}
spe_context_event_priv_t
, *
spe_context_event_priv_ptr_t
;
42
43
44
int
_event_spe_stop_info_read
(
spe_context_ptr_t
spe,
spe_stop_info_t
*stopinfo);
45
46
/*
47
* spe_event_handler_create
48
*/
49
50
spe_event_handler_ptr_t
_event_spe_event_handler_create
(
void
);
51
52
/*
53
* spe_event_handler_destroy
54
*/
55
56
int
_event_spe_event_handler_destroy
(
spe_event_handler_ptr_t
evhandler);
57
58
/*
59
* spe_event_handler_register
60
*/
61
62
int
_event_spe_event_handler_register
(
spe_event_handler_ptr_t
evhandler,
spe_event_unit_t
*event);
63
64
/*
65
* spe_event_handler_deregister
66
*/
67
68
int
_event_spe_event_handler_deregister
(
spe_event_handler_ptr_t
evhandler,
spe_event_unit_t
*event);
69
70
/*
71
* spe_event_wait
72
*/
73
74
int
_event_spe_event_wait
(
spe_event_handler_ptr_t
evhandler,
spe_event_unit_t
*events,
int
max_events,
int
timeout);
75
76
int
_event_spe_context_finalize
(
spe_context_ptr_t
spe);
77
78
struct
spe_context_event_priv
*
_event_spe_context_initialize
(
spe_context_ptr_t
spe);
79
80
int
_event_spe_context_run
(
spe_context_ptr_t
spe,
unsigned
int
*entry,
unsigned
int
runflags,
void
*argp,
void
*envp,
spe_stop_info_t
*stopinfo);
81
82
void
_event_spe_context_lock
(
spe_context_ptr_t
spe);
83
void
_event_spe_context_unlock
(
spe_context_ptr_t
spe);
84
85
#endif
/*SPEEVENT_H_*/
spe_event_handler_ptr_t
void * spe_event_handler_ptr_t
Definition:
libspe2-types.h:159
spe_context_event_priv::lock
pthread_mutex_t lock
Definition:
speevent.h:37
_event_spe_context_finalize
int _event_spe_context_finalize(spe_context_ptr_t spe)
Definition:
spe_event.c:416
_event_spe_stop_info_read
int _event_spe_stop_info_read(spe_context_ptr_t spe, spe_stop_info_t *stopinfo)
Definition:
spe_event.c:59
_event_spe_context_lock
void _event_spe_context_lock(spe_context_ptr_t spe)
Definition:
spe_event.c:49
spe_context_event_priv
Definition:
speevent.h:35
_event_spe_context_unlock
void _event_spe_context_unlock(spe_context_ptr_t spe)
Definition:
spe_event.c:54
spe_context
Definition:
libspe2-types.h:64
__SPE_EVENT_SPE_STOPPED
Definition:
speevent.h:30
_event_spe_context_initialize
struct spe_context_event_priv * _event_spe_context_initialize(spe_context_ptr_t spe)
Definition:
spe_event.c:439
spe_context_event_priv::events
spe_event_unit_t events[__NUM_SPE_EVENT_TYPES]
Definition:
speevent.h:40
__SPE_EVENT_OUT_INTR_MBOX
Definition:
speevent.h:29
spe_context_event_priv_ptr_t
struct spe_context_event_priv * spe_context_event_priv_ptr_t
_event_spe_event_handler_deregister
int _event_spe_event_handler_deregister(spe_event_handler_ptr_t evhandler, spe_event_unit_t *event)
Definition:
spe_event.c:273
_event_spe_event_wait
int _event_spe_event_wait(spe_event_handler_ptr_t evhandler, spe_event_unit_t *events, int max_events, int timeout)
Definition:
spe_event.c:360
spebase.h
__NUM_SPE_EVENT_TYPES
Definition:
speevent.h:31
_event_spe_event_handler_create
spe_event_handler_ptr_t _event_spe_event_handler_create(void)
Definition:
spe_event.c:110
__SPE_EVENT_IN_MBOX
Definition:
speevent.h:29
spe_context_event_priv_t
struct spe_context_event_priv spe_context_event_priv_t
spe_stop_info
Definition:
libspe2-types.h:118
__SPE_EVENT_TAG_GROUP
Definition:
speevent.h:30
spe_context_event_priv::stop_event_read_lock
pthread_mutex_t stop_event_read_lock
Definition:
speevent.h:38
_event_spe_event_handler_register
int _event_spe_event_handler_register(spe_event_handler_ptr_t evhandler, spe_event_unit_t *event)
Definition:
spe_event.c:155
_event_spe_context_run
int _event_spe_context_run(spe_context_ptr_t spe, unsigned int *entry, unsigned int runflags, void *argp, void *envp, spe_stop_info_t *stopinfo)
Definition:
spe_event.c:477
spe_event_unit
Definition:
libspe2-types.h:152
spe_context_event_priv::stop_event_pipe
int stop_event_pipe[2]
Definition:
speevent.h:39
_event_spe_event_handler_destroy
int _event_spe_event_handler_destroy(spe_event_handler_ptr_t evhandler)
Definition:
spe_event.c:135
__spe_event_types
__spe_event_types
Definition:
speevent.h:28
Generated on Sat Apr 9 2016 16:46:47 for libspe2 by
1.8.6