Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Functions | Variables
spu_base.c File Reference
#include <linux/interrupt.h>
#include <linux/list.h>
#include <linux/module.h>
#include <linux/ptrace.h>
#include <linux/slab.h>
#include <linux/wait.h>
#include <linux/mm.h>
#include <linux/io.h>
#include <linux/mutex.h>
#include <linux/linux_logo.h>
#include <linux/syscore_ops.h>
#include <asm/spu.h>
#include <asm/spu_priv1.h>
#include <asm/spu_csa.h>
#include <asm/xmon.h>
#include <asm/prom.h>
#include <asm/kexec.h>

Go to the source code of this file.

Data Structures

struct  spu_slb
 

Functions

 EXPORT_SYMBOL_GPL (spu_management_ops)
 
 EXPORT_SYMBOL_GPL (spu_priv1_ops)
 
 EXPORT_SYMBOL_GPL (cbe_spu_info)
 
 EXPORT_SYMBOL_GPL (force_sig_info)
 
void spu_invalidate_slbs (struct spu *spu)
 
 EXPORT_SYMBOL_GPL (spu_invalidate_slbs)
 
void spu_flush_all_slbs (struct mm_struct *mm)
 
void spu_associate_mm (struct spu *spu, struct mm_struct *mm)
 
 EXPORT_SYMBOL_GPL (spu_associate_mm)
 
int spu_64k_pages_available (void)
 
 EXPORT_SYMBOL_GPL (spu_64k_pages_available)
 
int hash_page (unsigned long ea, unsigned long access, unsigned long trap)
 
void spu_setup_kernel_slbs (struct spu *spu, struct spu_lscsa *lscsa, void *code, int code_size)
 
 EXPORT_SYMBOL_GPL (spu_setup_kernel_slbs)
 
void spu_init_channels (struct spu *spu)
 
 EXPORT_SYMBOL_GPL (spu_init_channels)
 
int spu_add_dev_attr (struct device_attribute *attr)
 
 EXPORT_SYMBOL_GPL (spu_add_dev_attr)
 
int spu_add_dev_attr_group (struct attribute_group *attrs)
 
 EXPORT_SYMBOL_GPL (spu_add_dev_attr_group)
 
void spu_remove_dev_attr (struct device_attribute *attr)
 
 EXPORT_SYMBOL_GPL (spu_remove_dev_attr)
 
void spu_remove_dev_attr_group (struct attribute_group *attrs)
 
 EXPORT_SYMBOL_GPL (spu_remove_dev_attr_group)
 
 module_init (init_spu_base)
 
 MODULE_LICENSE ("GPL")
 
 MODULE_AUTHOR ("Arnd Bergmann <[email protected]>")
 

Variables

struct spu_management_ops * spu_management_ops
 
struct spu_priv1_ops * spu_priv1_ops
 
struct cbe_spu_info cbe_spu_info [MAX_NUMNODES]
 

Function Documentation

EXPORT_SYMBOL_GPL ( spu_management_ops  )
EXPORT_SYMBOL_GPL ( spu_priv1_ops  )
EXPORT_SYMBOL_GPL ( cbe_spu_info  )
EXPORT_SYMBOL_GPL ( force_sig_info  )
EXPORT_SYMBOL_GPL ( spu_invalidate_slbs  )
EXPORT_SYMBOL_GPL ( spu_associate_mm  )
EXPORT_SYMBOL_GPL ( spu_64k_pages_available  )
EXPORT_SYMBOL_GPL ( spu_setup_kernel_slbs  )
EXPORT_SYMBOL_GPL ( spu_init_channels  )
EXPORT_SYMBOL_GPL ( spu_add_dev_attr  )
EXPORT_SYMBOL_GPL ( spu_add_dev_attr_group  )
EXPORT_SYMBOL_GPL ( spu_remove_dev_attr  )
EXPORT_SYMBOL_GPL ( spu_remove_dev_attr_group  )
int hash_page ( unsigned long  ea,
unsigned long  access,
unsigned long  trap 
)

Definition at line 910 of file hash_utils_64.c.

MODULE_AUTHOR ( "Arnd Bergmann <[email protected]>"  )
module_init ( init_spu_base  )
MODULE_LICENSE ( "GPL"  )
int spu_64k_pages_available ( void  )

Definition at line 134 of file spu_base.c.

int spu_add_dev_attr ( struct device_attribute attr)

Definition at line 527 of file spu_base.c.

int spu_add_dev_attr_group ( struct attribute_group attrs)

Definition at line 540 of file spu_base.c.

void spu_associate_mm ( struct spu *  spu,
struct mm_struct mm 
)

Definition at line 122 of file spu_base.c.

void spu_flush_all_slbs ( struct mm_struct mm)

Definition at line 98 of file spu_base.c.

void spu_init_channels ( struct spu *  spu)

Definition at line 487 of file spu_base.c.

void spu_invalidate_slbs ( struct spu *  spu)

Definition at line 83 of file spu_base.c.

void spu_remove_dev_attr ( struct device_attribute attr)

Definition at line 568 of file spu_base.c.

void spu_remove_dev_attr_group ( struct attribute_group attrs)

Definition at line 579 of file spu_base.c.

void spu_setup_kernel_slbs ( struct spu *  spu,
struct spu_lscsa *  lscsa,
void code,
int  code_size 
)

Setup the SPU kernel SLBs, in preparation for a context save/restore. We need to map both the context save area, and the save/restore code.

Because the lscsa and code may cross segment boundaires, we check to see if mappings are required for the start and end of each range. We currently assume that the mappings are smaller that one segment - if not, something is seriously wrong.

Definition at line 297 of file spu_base.c.

Variable Documentation

struct cbe_spu_info cbe_spu_info[MAX_NUMNODES]

Definition at line 49 of file spu_base.c.

struct spu_management_ops* spu_management_ops

Definition at line 43 of file spu_base.c.

struct spu_priv1_ops* spu_priv1_ops

Definition at line 46 of file spu_base.c.