Pull ec into release branch
[pandora-kernel.git] / include / asm-powerpc / spu.h
index fdad426..31d5054 100644 (file)
 
 struct spu_context;
 struct spu_runqueue;
+struct device_node;
 
 struct spu {
        const char *name;
@@ -128,7 +129,6 @@ struct spu {
        struct spu_runqueue *rq;
        unsigned long long timestamp;
        pid_t pid;
-       int prio;
        int class_0_pending;
        spinlock_t register_lock;
 
@@ -142,7 +142,19 @@ struct spu {
        char irq_c1[8];
        char irq_c2[8];
 
+       u64 spe_id;
+
        void* pdata; /* platform private data */
+
+       /* of based platforms only */
+       struct device_node *devnode;
+
+       /* native only */
+       struct spu_priv1 __iomem *priv1;
+
+       /* beat only */
+       u64 shadow_int_mask_RW[3];
+
        struct sys_device sysdev;
 };
 
@@ -153,6 +165,13 @@ int spu_irq_class_0_bottom(struct spu *spu);
 int spu_irq_class_1_bottom(struct spu *spu);
 void spu_irq_setaffinity(struct spu *spu, int cpu);
 
+extern void spu_invalidate_slbs(struct spu *spu);
+extern void spu_associate_mm(struct spu *spu, struct mm_struct *mm);
+
+/* Calls from the memory management to the SPU */
+struct mm_struct;
+extern void spu_flush_all_slbs(struct mm_struct *mm);
+
 /* system callbacks from the SPU */
 struct spu_syscall_block {
        u64 nr_ret;
@@ -161,6 +180,7 @@ struct spu_syscall_block {
 extern long spu_sys_callback(struct spu_syscall_block *s);
 
 /* syscalls implemented in spufs */
+struct file;
 extern struct spufs_calls {
        asmlinkage long (*create_thread)(const char __user *name,
                                        unsigned int flags, mode_t mode);
@@ -232,6 +252,7 @@ void spu_remove_sysdev_attr_group(struct attribute_group *attrs);
  * to object-id spufs file from user space and the notifer
  * function can assume that spu->ctx is valid.
  */
+struct notifier_block;
 int spu_switch_event_register(struct notifier_block * n);
 int spu_switch_event_unregister(struct notifier_block * n);