File: spu.h

package info (click to toggle)
libspe2 2.2.80-95-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 940 kB
  • ctags: 1,214
  • sloc: ansic: 9,316; makefile: 551; ada: 448; sh: 24
file content (45 lines) | stat: -rw-r--r-- 942 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#ifndef __SYS_SPU_H
#define __SYS_SPU_H

#include <sys/syscall.h>
#include <unistd.h>
#include <stdarg.h>

#ifndef __NR_spu_run
#define __NR_spu_run 278
#endif

#ifndef __NR_spu_create
#define __NR_spu_create 279
#endif

#define SPU_CREATE_EVENTS_ENABLED 0x0001
#define SPU_CREATE_GANG 0x0002

#define SPU_CREATE_NOSCHED 0x0004
#define SPU_CREATE_ISOLATE 0x0008

#define SPU_CREATE_AFFINITY_SPU                0x0010
#define SPU_CREATE_AFFINITY_MEM                0x0020

static inline int spu_run(int fd, unsigned int *npc, unsigned int *status)
{
	return syscall(__NR_spu_run, fd, npc, status);
}

static int spu_create(const char * path, int flags, mode_t mode, ...)
{
	va_list vargs;
	int fd;
	if (flags & SPU_CREATE_AFFINITY_SPU) {
		va_start(vargs, mode);
		fd = va_arg(vargs, int);
		va_end(vargs);
		return syscall(__NR_spu_create, path, flags, mode, fd);
	}
	else {
		return syscall(__NR_spu_create, path, flags, mode);
	}
}

#endif