OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [libl4/] [include/] [l4lib/] [mutex.h] - Rev 2

Compare with Previous | Blame | View Log

 
/*
 * User space locking
 *
 * Copyright (C) 2009 Bahadir Bilgehan Balban
 */
 
#ifndef __L4_MUTEX_H__
#define __L4_MUTEX_H__
 
 
#if !defined(__ASSEMBLY__)
 
#include <l4/api/mutex.h>
 
struct l4_mutex {
	int lock;
} __attribute__((aligned(sizeof(int))));
 
 
void l4_mutex_init(struct l4_mutex *m);
int l4_mutex_lock(struct l4_mutex *m);
int l4_mutex_unlock(struct l4_mutex *m);
 
#endif
 
/* Mutex return value - don't mix up with mutes state */
#define L4_MUTEX_CONTENDED	-1
#define L4_MUTEX_SUCCESS	0
 
/*
 * Mutex states:
 * Unlocked = -1, locked = 0, anything above 0 tells
 * number of contended threads
 */
#define L4_MUTEX_LOCKED			0
#define L4_MUTEX_UNLOCKED		-1
#define L4_MUTEX(m)	\
	struct l4_mutex m = { L4_MUTEX_UNLOCKED }
 
 
#endif /* __L4_MUTEX_H__ */
 

Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.