File: rtl_sema.h

package info (click to toggle)
rtlinux 3.1pre3-3
  • links: PTS
  • area: non-free
  • in suites: etch, etch-m68k
  • size: 4,896 kB
  • ctags: 4,228
  • sloc: ansic: 26,204; sh: 2,069; makefile: 1,414; perl: 855; tcl: 489; asm: 380; cpp: 42
file content (37 lines) | stat: -rw-r--r-- 804 bytes parent folder | download | duplicates (2)
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
/*
 * RT-Linux semaphore implementation
 *
 * Written by Michael Barabanov <baraban@fsmlabs.com>
 * Copyright (C)  Finite State Machine Labs Inc. ,2000
 * Released under the terms of the GPL Version 2
 *
 */

#ifndef __RTL_SEMA_H__
#define __RTL_SEMA_H__

#include <rtl_conf.h>

#include <rtl_mutex.h>
#include <errno.h>

struct rtl_sem_struct
{
	int value;
	spinlock_t lock;
	rtl_wait_t wait;
};

typedef struct rtl_sem_struct sem_t;

extern int sem_init(sem_t *sem, int pshared, unsigned int value);
extern int sem_destroy(sem_t *sem);
extern int sem_getvalue(sem_t *sem, int *sval);
extern int sem_wait(sem_t *sem);
extern int sem_trywait(sem_t *sem);
extern int sem_post(sem_t *sem);
#ifdef _RTL_POSIX_TIMEOUTS
extern int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout);
#endif

#endif