2002-10-29 06:54:07 +03:00
|
|
|
/*
|
2004-10-01 04:31:20 +04:00
|
|
|
** Copyright 2002-2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
|
|
|
** Distributed under the terms of the Haiku License.
|
2002-10-29 06:54:07 +03:00
|
|
|
*/
|
2002-10-29 07:21:22 +03:00
|
|
|
#ifndef VFS_SELECT_H
|
|
|
|
#define VFS_SELECT_H
|
2002-10-29 06:54:07 +03:00
|
|
|
|
2004-10-01 04:31:20 +04:00
|
|
|
#include <Select.h>
|
2005-03-18 00:27:01 +03:00
|
|
|
#include <util/DoublyLinkedList.h>
|
2004-10-01 04:31:20 +04:00
|
|
|
|
|
|
|
|
2002-10-29 06:54:07 +03:00
|
|
|
typedef struct select_info {
|
2002-11-03 06:19:34 +03:00
|
|
|
uint16 selected_events;
|
2002-10-29 08:41:10 +03:00
|
|
|
uint16 events;
|
2002-10-29 06:54:07 +03:00
|
|
|
} select_info;
|
|
|
|
|
|
|
|
typedef struct select_sync {
|
|
|
|
sem_id sem;
|
|
|
|
uint32 count;
|
|
|
|
select_info *set;
|
|
|
|
} select_sync;
|
|
|
|
|
|
|
|
#define SELECT_FLAG(type) (1L << (type - 1))
|
|
|
|
|
2005-03-18 00:27:01 +03:00
|
|
|
struct select_sync_pool_entry
|
|
|
|
: DoublyLinkedListLinkImpl<select_sync_pool_entry> {
|
|
|
|
selectsync *sync;
|
|
|
|
uint32 ref;
|
|
|
|
uint16 events;
|
|
|
|
};
|
|
|
|
|
|
|
|
typedef DoublyLinkedList<select_sync_pool_entry> SelectSyncPoolEntryList;
|
|
|
|
|
|
|
|
struct select_sync_pool {
|
|
|
|
SelectSyncPoolEntryList entries;
|
|
|
|
};
|
|
|
|
|
2002-10-29 07:21:22 +03:00
|
|
|
#endif /* VFS_SELECT_H */
|