libspe2  0.9a
Functions
accessors.c File Reference
#include "spebase.h"
#include "create.h"
#include <fcntl.h>
#include <errno.h>
#include <sys/mman.h>
Include dependency graph for accessors.c:

Go to the source code of this file.

Functions

void * _base_spe_ps_area_get (spe_context_ptr_t spe, enum ps_area area)
 
void * _base_spe_ls_area_get (spe_context_ptr_t spe)
 
 __attribute__ ((noinline))
 
int __base_spe_event_source_acquire (spe_context_ptr_t spe, enum fd_name fdesc)
 
void __base_spe_event_source_release (struct spe_context *spe, enum fd_name fdesc)
 
int __base_spe_spe_dir_get (spe_context_ptr_t spe)
 
int __base_spe_stop_event_source_get (spe_context_ptr_t spe)
 
int __base_spe_stop_event_target_get (spe_context_ptr_t spe)
 
int _base_spe_ls_size_get (spe_context_ptr_t spe)
 

Function Documentation

__attribute__ ( (noinline)  )

Definition at line 69 of file accessors.c.

70 {
71  return;
72 }
int __base_spe_event_source_acquire ( spe_context_ptr_t  spe,
enum fd_name  fdesc 
)

Definition at line 74 of file accessors.c.

References _base_spe_open_if_closed().

Referenced by _event_spe_event_handler_deregister(), and _event_spe_event_handler_register().

75 {
76  return _base_spe_open_if_closed(spe, fdesc, 0);
77 }
int _base_spe_open_if_closed(struct spe_context *spe, enum fd_name fdesc, int locked)
Definition: create.c:101

Here is the call graph for this function:

void __base_spe_event_source_release ( struct spe_context spectx,
enum fd_name  fdesc 
)

__base_spe_event_source_release releases the file descriptor to the specified event source

Parameters
spectxSpecifies the SPE context
fdescSpecifies the event source

Definition at line 79 of file accessors.c.

References _base_spe_close_if_open().

80 {
81  _base_spe_close_if_open(spe, fdesc);
82 }
void _base_spe_close_if_open(struct spe_context *spe, enum fd_name fdesc)
Definition: create.c:125

Here is the call graph for this function:

int __base_spe_spe_dir_get ( spe_context_ptr_t  spe)

Definition at line 84 of file accessors.c.

References spe_context::base_private, and spe_context_base_priv::fd_spe_dir.

85 {
86  return spe->base_private->fd_spe_dir;
87 }
struct spe_context_base_priv * base_private
Definition: libspe2-types.h:76
int __base_spe_stop_event_source_get ( spe_context_ptr_t  spe)

speevent users read from this end

Definition at line 92 of file accessors.c.

References spe_context::base_private, and spe_context_base_priv::ev_pipe.

93 {
94  return spe->base_private->ev_pipe[1];
95 }
struct spe_context_base_priv * base_private
Definition: libspe2-types.h:76
int __base_spe_stop_event_target_get ( spe_context_ptr_t  spe)

speevent writes to this end

Definition at line 100 of file accessors.c.

References spe_context::base_private, and spe_context_base_priv::ev_pipe.

101 {
102  return spe->base_private->ev_pipe[0];
103 }
struct spe_context_base_priv * base_private
Definition: libspe2-types.h:76
void* _base_spe_ls_area_get ( spe_context_ptr_t  spe)

Definition at line 64 of file accessors.c.

References spe_context::base_private, and spe_context_base_priv::mem_mmap_base.

65 {
66  return spe->base_private->mem_mmap_base;
67 }
struct spe_context_base_priv * base_private
Definition: libspe2-types.h:76
void * mem_mmap_base
Definition: spebase.h:85
int _base_spe_ls_size_get ( spe_context_ptr_t  spe)

_base_spe_ls_size_get returns the size of the local store area

Parameters
spectxSpecifies the SPE context

Definition at line 105 of file accessors.c.

References LS_SIZE.

106 {
107  return LS_SIZE;
108 }
#define LS_SIZE
Definition: elf_loader.h:23
void* _base_spe_ps_area_get ( spe_context_ptr_t  spe,
enum ps_area  area 
)

Definition at line 30 of file accessors.c.

References spe_context::base_private, spe_context_base_priv::cntl_mmap_base, spe_context_base_priv::mfc_mmap_base, spe_context_base_priv::mssync_mmap_base, spe_context_base_priv::signal1_mmap_base, spe_context_base_priv::signal2_mmap_base, SPE_CONTROL_AREA, SPE_MFC_COMMAND_AREA, SPE_MSSYNC_AREA, SPE_SIG_NOTIFY_1_AREA, and SPE_SIG_NOTIFY_2_AREA.

31 {
32  void *ptr;
33 
34  switch (area) {
35  case SPE_MSSYNC_AREA:
36  ptr = spe->base_private->mssync_mmap_base;
37  break;
39  ptr = spe->base_private->mfc_mmap_base;
40  break;
41  case SPE_CONTROL_AREA:
42  ptr = spe->base_private->cntl_mmap_base;
43  break;
45  ptr = spe->base_private->signal1_mmap_base;
46  break;
48  ptr = spe->base_private->signal2_mmap_base;
49  break;
50  default:
51  errno = EINVAL;
52  return NULL;
53  break;
54  }
55 
56  if (ptr == MAP_FAILED) {
57  errno = EACCES;
58  return NULL;
59  }
60 
61  return ptr;
62 }
void * signal2_mmap_base
Definition: spebase.h:90
void * mssync_mmap_base
Definition: spebase.h:87
void * cntl_mmap_base
Definition: spebase.h:88
void * mfc_mmap_base
Definition: spebase.h:86
void * signal1_mmap_base
Definition: spebase.h:89
struct spe_context_base_priv * base_private
Definition: libspe2-types.h:76