libosmocore 0.9.6-23.20170220git32ee5af8.fc42
Osmocom core library
Loading...
Searching...
No Matches
Select loop abstraction

Files

file  select.h
 select loop abstraction
 
file  select.c
 select loop abstraction
 

Data Structures

struct  osmo_fd
 Structure representing a file dsecriptor. More...
 

Macros

#define BSC_FD_READ   0x0001
 Indicate interest in reading from the file descriptor.
 
#define BSC_FD_WRITE   0x0002
 Indicate interest in writing to the file descriptor.
 
#define BSC_FD_EXCEPT   0x0004
 Indicate interest in exceptions from the file descriptor.
 

Functions

bool osmo_fd_is_registered (struct osmo_fd *fd)
 Check if a file descriptor is already registered.
 
int osmo_fd_register (struct osmo_fd *fd)
 Register a new file descriptor with select loop abstraction.
 
void osmo_fd_unregister (struct osmo_fd *fd)
 Unregister a file descriptor from select loop abstraction.
 
int osmo_select_main (int polling)
 select main loop integration
 
struct osmo_fdosmo_fd_get_by_fd (int fd)
 find an osmo_fd based on the integer fd
 
int osmo_fd_fill_fds (void *readset, void *writeset, void *exceptset)
 
int osmo_fd_disp_fds (void *readset, void *writeset, void *exceptset)
 
static LLIST_HEAD (osmo_fds)
 

Variables

static int maxfd = 0
 
static int unregistered_count
 

Detailed Description

Function Documentation

◆ osmo_fd_get_by_fd()

struct osmo_fd * osmo_fd_get_by_fd ( int fd)

find an osmo_fd based on the integer fd

Parameters
[in]fdfile descriptor to use as search key
Returns
osmo_fd for fd; NULL in case it doesn't exist

References osmo_fd::fd, osmo_fd::list, and llist_for_each_entry.

◆ osmo_fd_is_registered()

bool osmo_fd_is_registered ( struct osmo_fd * fd)

Check if a file descriptor is already registered.

Parameters
[in]fdosmocom file descriptor to be checked
Returns
true if registered; otherwise false

References osmo_fd::fd, osmo_fd::list, and llist_for_each_entry.

Referenced by osmo_fd_register().

◆ osmo_fd_register()

int osmo_fd_register ( struct osmo_fd * fd)

Register a new file descriptor with select loop abstraction.

Parameters
[in]fdosmocom file descriptor to be registered
Returns
0 on success; negative in case of error

References osmo_fd::fd, llist_add_tail(), and osmo_fd_is_registered().

Referenced by gsmtap_source_add_sink(), gsmtap_source_init(), and osmo_fd_init_ofd().

◆ osmo_fd_unregister()

void osmo_fd_unregister ( struct osmo_fd * fd)

Unregister a file descriptor from select loop abstraction.

Parameters
[in]fdosmocom file descriptor to be unregistered

References osmo_fd::fd, and llist_del().

◆ osmo_select_main()

int osmo_select_main ( int polling)

select main loop integration

Parameters
[in]pollingshould we pollonly (1) or block on select (0)
Returns
0 if no fd handled; 1 if fd handled; negative in case of error

References osmo_timers_nearest(), osmo_timers_prepare(), and osmo_timers_update().