Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 101757
b: refs/heads/master
c: 46deed6
h: refs/heads/master
i:
  101755: b4a3a9c
v: v3
  • Loading branch information
Luke Browning authored and Jeremy Kerr committed Jul 9, 2008
1 parent b6df252 commit 48de79a
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0db9360aaa9b95b0cf67f82874809f16e68068eb
refs/heads/master: 46deed69b34d0aa6065e92ad79685e103d4ccd35
54 changes: 54 additions & 0 deletions trunk/arch/powerpc/platforms/cell/spufs/file.c
Original file line number Diff line number Diff line change
Expand Up @@ -2555,6 +2555,58 @@ void spu_switch_log_notify(struct spu *spu, struct spu_context *ctx,
wake_up(&ctx->switch_log->wait);
}

static int spufs_show_ctx(struct seq_file *s, void *private)
{
struct spu_context *ctx = s->private;
u64 mfc_control_RW;

mutex_lock(&ctx->state_mutex);
if (ctx->spu) {
struct spu *spu = ctx->spu;
struct spu_priv2 __iomem *priv2 = spu->priv2;

spin_lock_irq(&spu->register_lock);
mfc_control_RW = in_be64(&priv2->mfc_control_RW);
spin_unlock_irq(&spu->register_lock);
} else {
struct spu_state *csa = &ctx->csa;

mfc_control_RW = csa->priv2.mfc_control_RW;
}

seq_printf(s, "%c flgs(%lx) sflgs(%lx) pri(%d) ts(%d) spu(%02d)"
" %c %lx %lx %lx %lx %x %x\n",
ctx->state == SPU_STATE_SAVED ? 'S' : 'R',
ctx->flags,
ctx->sched_flags,
ctx->prio,
ctx->time_slice,
ctx->spu ? ctx->spu->number : -1,
!list_empty(&ctx->rq) ? 'q' : ' ',
ctx->csa.class_0_pending,
ctx->csa.class_0_dar,
ctx->csa.class_1_dsisr,
mfc_control_RW,
ctx->ops->runcntl_read(ctx),
ctx->ops->status_read(ctx));

mutex_unlock(&ctx->state_mutex);

return 0;
}

static int spufs_ctx_open(struct inode *inode, struct file *file)
{
return single_open(file, spufs_show_ctx, SPUFS_I(inode)->i_ctx);
}

static const struct file_operations spufs_ctx_fops = {
.open = spufs_ctx_open,
.read = seq_read,
.llseek = seq_lseek,
.release = single_release,
};

struct tree_descr spufs_dir_contents[] = {
{ "capabilities", &spufs_caps_fops, 0444, },
{ "mem", &spufs_mem_fops, 0666, },
Expand Down Expand Up @@ -2591,6 +2643,7 @@ struct tree_descr spufs_dir_contents[] = {
{ "tid", &spufs_tid_fops, 0444, },
{ "stat", &spufs_stat_fops, 0444, },
{ "switch_log", &spufs_switch_log_fops, 0444 },
{ ".ctx", &spufs_ctx_fops, 0444, },
{},
};

Expand All @@ -2616,6 +2669,7 @@ struct tree_descr spufs_dir_nosched_contents[] = {
{ "object-id", &spufs_object_id_ops, 0666, },
{ "tid", &spufs_tid_fops, 0444, },
{ "stat", &spufs_stat_fops, 0444, },
{ ".ctx", &spufs_ctx_fops, 0444, },
{},
};

Expand Down

0 comments on commit 48de79a

Please sign in to comment.