#include "spebase.h"
#include "create.h"
#include <fcntl.h>
#include <errno.h>
#include <sys/mman.h>
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) |
__attribute__ | ( | (noinline) | ) |
Definition at line 69 of file accessors.c.
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().
00075 { 00076 return _base_spe_open_if_closed(spe, fdesc, 0); 00077 }
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
spectx | Specifies the SPE context | |
fdesc | Specifies the event source |
Definition at line 79 of file accessors.c.
References _base_spe_close_if_open().
00080 { 00081 _base_spe_close_if_open(spe, fdesc); 00082 }
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.
00085 { 00086 return spe->base_private->fd_spe_dir; 00087 }
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.
00093 { 00094 return spe->base_private->ev_pipe[1]; 00095 }
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.
00101 { 00102 return spe->base_private->ev_pipe[0]; 00103 }
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.
00065 { 00066 return spe->base_private->mem_mmap_base; 00067 }
int _base_spe_ls_size_get | ( | spe_context_ptr_t | spe | ) |
_base_spe_ls_size_get returns the size of the local store area
spectx | Specifies the SPE context |
Definition at line 105 of file accessors.c.
References LS_SIZE.
00106 { 00107 return LS_SIZE; 00108 }
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.
00031 { 00032 void *ptr; 00033 00034 switch (area) { 00035 case SPE_MSSYNC_AREA: 00036 ptr = spe->base_private->mssync_mmap_base; 00037 break; 00038 case SPE_MFC_COMMAND_AREA: 00039 ptr = spe->base_private->mfc_mmap_base; 00040 break; 00041 case SPE_CONTROL_AREA: 00042 ptr = spe->base_private->cntl_mmap_base; 00043 break; 00044 case SPE_SIG_NOTIFY_1_AREA: 00045 ptr = spe->base_private->signal1_mmap_base; 00046 break; 00047 case SPE_SIG_NOTIFY_2_AREA: 00048 ptr = spe->base_private->signal2_mmap_base; 00049 break; 00050 default: 00051 errno = EINVAL; 00052 return NULL; 00053 break; 00054 } 00055 00056 if (ptr == MAP_FAILED) { 00057 errno = EACCES; 00058 return NULL; 00059 } 00060 00061 return ptr; 00062 }