Subversion Repositories HelenOS

Rev

Rev 2071 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2071 Rev 2106
Line 33... Line 33...
33
 */
33
 */
34
 
34
 
35
#ifndef KERN_SYNCH_H_
35
#ifndef KERN_SYNCH_H_
36
#define KERN_SYNCH_H_
36
#define KERN_SYNCH_H_
37
 
37
 
38
#define SYNCH_NO_TIMEOUT    0   /**< Request with no timeout. */
38
/** Request with no timeout. */
-
 
39
#define SYNCH_NO_TIMEOUT    0
39
 
40
 
-
 
41
/** No flags specified. */
40
#define SYNCH_FLAGS_NONE        0   /**< No flags specified. */
42
#define SYNCH_FLAGS_NONE        0
-
 
43
/** Non-blocking operation request. */
41
#define SYNCH_FLAGS_NON_BLOCKING    (1<<0)  /**< Non-blocking operation request. */
44
#define SYNCH_FLAGS_NON_BLOCKING    (1 << 0)
-
 
45
/** Interruptible operation. */
42
#define SYNCH_FLAGS_INTERRUPTIBLE   (1<<1)  /**< Interruptible operation. */
46
#define SYNCH_FLAGS_INTERRUPTIBLE   (1 << 1)
43
 
47
 
44
#define ESYNCH_WOULD_BLOCK  1   /**< Could not satisfy the request without going to sleep. */
48
/** Could not satisfy the request without going to sleep. */
-
 
49
#define ESYNCH_WOULD_BLOCK  1
-
 
50
/** Timeout occurred. */
45
#define ESYNCH_TIMEOUT      2   /**< Timeout occurred. */
51
#define ESYNCH_TIMEOUT      2
46
#define ESYNCH_INTERRUPTED  4   /**< Sleep was interrupted. */
52
/** Sleep was interrupted. */
-
 
53
#define ESYNCH_INTERRUPTED  4
47
#define ESYNCH_OK_ATOMIC    8   /**< Operation succeeded without sleeping. */
54
/** Operation succeeded without sleeping. */
-
 
55
#define ESYNCH_OK_ATOMIC    8
48
#define ESYNCH_OK_BLOCKED   16  /**< Operation succeeded and did sleep. */
56
/** Operation succeeded and did sleep. */
-
 
57
#define ESYNCH_OK_BLOCKED   16
49
 
58
 
-
 
59
#define SYNCH_FAILED(rc) \
50
#define SYNCH_FAILED(rc)    ((rc) & (ESYNCH_WOULD_BLOCK | ESYNCH_TIMEOUT | ESYNCH_INTERRUPTED))
60
    ((rc) & (ESYNCH_WOULD_BLOCK | ESYNCH_TIMEOUT | ESYNCH_INTERRUPTED))
-
 
61
#define SYNCH_OK(rc) \
51
#define SYNCH_OK(rc)        ((rc) & (ESYNCH_OK_ATOMIC | ESYNCH_OK_BLOCKED))
62
    ((rc) & (ESYNCH_OK_ATOMIC | ESYNCH_OK_BLOCKED))
52
 
63
 
53
#endif
64
#endif
54
 
65
 
55
/** @}
66
/** @}
56
 */
67
 */