libgpiod
2.1.2
|
#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>
Go to the source code of this file.
Functions | |
struct gpiod_chip * | gpiod_chip_open (const char *path) |
Open a chip by path. More... | |
void | gpiod_chip_close (struct gpiod_chip *chip) |
Close the chip and release all associated resources. More... | |
struct gpiod_chip_info * | gpiod_chip_get_info (struct gpiod_chip *chip) |
Get information about the chip. More... | |
const char * | gpiod_chip_get_path (struct gpiod_chip *chip) |
Get the path used to open the chip. More... | |
struct gpiod_line_info * | gpiod_chip_get_line_info (struct gpiod_chip *chip, unsigned int offset) |
Get a snapshot of information about a line. More... | |
struct gpiod_line_info * | gpiod_chip_watch_line_info (struct gpiod_chip *chip, unsigned int offset) |
Get a snapshot of the status of a line and start watching it for future changes. More... | |
int | gpiod_chip_unwatch_line_info (struct gpiod_chip *chip, unsigned int offset) |
Stop watching a line for status changes. More... | |
int | gpiod_chip_get_fd (struct gpiod_chip *chip) |
Get the file descriptor associated with the chip. More... | |
int | gpiod_chip_wait_info_event (struct gpiod_chip *chip, int64_t timeout_ns) |
Wait for line status change events on any of the watched lines on the chip. More... | |
struct gpiod_info_event * | gpiod_chip_read_info_event (struct gpiod_chip *chip) |
Read a single line status change event from the chip. More... | |
int | gpiod_chip_get_line_offset_from_name (struct gpiod_chip *chip, const char *name) |
Map a line's name to its offset within the chip. More... | |
struct gpiod_line_request * | gpiod_chip_request_lines (struct gpiod_chip *chip, struct gpiod_request_config *req_cfg, struct gpiod_line_config *line_cfg) |
Request a set of lines for exclusive usage. More... | |
void | gpiod_chip_info_free (struct gpiod_chip_info *info) |
Free a chip info object and release all associated resources. More... | |
const char * | gpiod_chip_info_get_name (struct gpiod_chip_info *info) |
Get the name of the chip as represented in the kernel. More... | |
const char * | gpiod_chip_info_get_label (struct gpiod_chip_info *info) |
Get the label of the chip as represented in the kernel. More... | |
size_t | gpiod_chip_info_get_num_lines (struct gpiod_chip_info *info) |
Get the number of lines exposed by the chip. More... | |
void | gpiod_line_info_free (struct gpiod_line_info *info) |
Free a line info object and release all associated resources. More... | |
struct gpiod_line_info * | gpiod_line_info_copy (struct gpiod_line_info *info) |
Copy a line info object. More... | |
unsigned int | gpiod_line_info_get_offset (struct gpiod_line_info *info) |
Get the offset of the line. More... | |
const char * | gpiod_line_info_get_name (struct gpiod_line_info *info) |
Get the name of the line. More... | |
bool | gpiod_line_info_is_used (struct gpiod_line_info *info) |
Check if the line is in use. More... | |
const char * | gpiod_line_info_get_consumer (struct gpiod_line_info *info) |
Get the name of the consumer of the line. More... | |
enum gpiod_line_direction | gpiod_line_info_get_direction (struct gpiod_line_info *info) |
Get the direction setting of the line. More... | |
enum gpiod_line_edge | gpiod_line_info_get_edge_detection (struct gpiod_line_info *info) |
Get the edge detection setting of the line. More... | |
enum gpiod_line_bias | gpiod_line_info_get_bias (struct gpiod_line_info *info) |
Get the bias setting of the line. More... | |
enum gpiod_line_drive | gpiod_line_info_get_drive (struct gpiod_line_info *info) |
Get the drive setting of the line. More... | |
bool | gpiod_line_info_is_active_low (struct gpiod_line_info *info) |
Check if the logical value of the line is inverted compared to the physical. More... | |
bool | gpiod_line_info_is_debounced (struct gpiod_line_info *info) |
Check if the line is debounced (either by hardware or by the kernel software debouncer). More... | |
unsigned long | gpiod_line_info_get_debounce_period_us (struct gpiod_line_info *info) |
Get the debounce period of the line, in microseconds. More... | |
enum gpiod_line_clock | gpiod_line_info_get_event_clock (struct gpiod_line_info *info) |
Get the event clock setting used for edge event timestamps for the line. More... | |
void | gpiod_info_event_free (struct gpiod_info_event *event) |
Free the info event object and release all associated resources. More... | |
enum gpiod_info_event_type | gpiod_info_event_get_event_type (struct gpiod_info_event *event) |
Get the event type of the status change event. More... | |
uint64_t | gpiod_info_event_get_timestamp_ns (struct gpiod_info_event *event) |
Get the timestamp of the event. More... | |
struct gpiod_line_info * | gpiod_info_event_get_line_info (struct gpiod_info_event *event) |
Get the snapshot of line-info associated with the event. More... | |
struct gpiod_line_settings * | gpiod_line_settings_new (void) |
Create a new line settings object. More... | |
void | gpiod_line_settings_free (struct gpiod_line_settings *settings) |
Free the line settings object and release all associated resources. More... | |
void | gpiod_line_settings_reset (struct gpiod_line_settings *settings) |
Reset the line settings object to its default values. More... | |
struct gpiod_line_settings * | gpiod_line_settings_copy (struct gpiod_line_settings *settings) |
Copy the line settings object. More... | |
int | gpiod_line_settings_set_direction (struct gpiod_line_settings *settings, enum gpiod_line_direction direction) |
Set direction. More... | |
enum gpiod_line_direction | gpiod_line_settings_get_direction (struct gpiod_line_settings *settings) |
Get direction. More... | |
int | gpiod_line_settings_set_edge_detection (struct gpiod_line_settings *settings, enum gpiod_line_edge edge) |
Set edge detection. More... | |
enum gpiod_line_edge | gpiod_line_settings_get_edge_detection (struct gpiod_line_settings *settings) |
Get edge detection. More... | |
int | gpiod_line_settings_set_bias (struct gpiod_line_settings *settings, enum gpiod_line_bias bias) |
Set bias. More... | |
enum gpiod_line_bias | gpiod_line_settings_get_bias (struct gpiod_line_settings *settings) |
Get bias. More... | |
int | gpiod_line_settings_set_drive (struct gpiod_line_settings *settings, enum gpiod_line_drive drive) |
Set drive. More... | |
enum gpiod_line_drive | gpiod_line_settings_get_drive (struct gpiod_line_settings *settings) |
Get drive. More... | |
void | gpiod_line_settings_set_active_low (struct gpiod_line_settings *settings, bool active_low) |
Set active-low setting. More... | |
bool | gpiod_line_settings_get_active_low (struct gpiod_line_settings *settings) |
Get active-low setting. More... | |
void | gpiod_line_settings_set_debounce_period_us (struct gpiod_line_settings *settings, unsigned long period) |
Set debounce period. More... | |
unsigned long | gpiod_line_settings_get_debounce_period_us (struct gpiod_line_settings *settings) |
Get debounce period. More... | |
int | gpiod_line_settings_set_event_clock (struct gpiod_line_settings *settings, enum gpiod_line_clock event_clock) |
Set event clock. More... | |
enum gpiod_line_clock | gpiod_line_settings_get_event_clock (struct gpiod_line_settings *settings) |
Get event clock setting. More... | |
int | gpiod_line_settings_set_output_value (struct gpiod_line_settings *settings, enum gpiod_line_value value) |
Set the output value. More... | |
enum gpiod_line_value | gpiod_line_settings_get_output_value (struct gpiod_line_settings *settings) |
Get the output value. More... | |
struct gpiod_line_config * | gpiod_line_config_new (void) |
Create a new line config object. More... | |
void | gpiod_line_config_free (struct gpiod_line_config *config) |
Free the line config object and release all associated resources. More... | |
void | gpiod_line_config_reset (struct gpiod_line_config *config) |
Reset the line config object. More... | |
int | gpiod_line_config_add_line_settings (struct gpiod_line_config *config, const unsigned int *offsets, size_t num_offsets, struct gpiod_line_settings *settings) |
Add line settings for a set of offsets. More... | |
struct gpiod_line_settings * | gpiod_line_config_get_line_settings (struct gpiod_line_config *config, unsigned int offset) |
Get line settings for offset. More... | |
int | gpiod_line_config_set_output_values (struct gpiod_line_config *config, const enum gpiod_line_value *values, size_t num_values) |
Set output values for a number of lines. More... | |
size_t | gpiod_line_config_get_num_configured_offsets (struct gpiod_line_config *config) |
Get the number of configured line offsets. More... | |
size_t | gpiod_line_config_get_configured_offsets (struct gpiod_line_config *config, unsigned int *offsets, size_t max_offsets) |
Get configured offsets. More... | |
struct gpiod_request_config * | gpiod_request_config_new (void) |
Create a new request config object. More... | |
void | gpiod_request_config_free (struct gpiod_request_config *config) |
Free the request config object and release all associated resources. More... | |
void | gpiod_request_config_set_consumer (struct gpiod_request_config *config, const char *consumer) |
Set the consumer name for the request. More... | |
const char * | gpiod_request_config_get_consumer (struct gpiod_request_config *config) |
Get the consumer name configured in the request config. More... | |
void | gpiod_request_config_set_event_buffer_size (struct gpiod_request_config *config, size_t event_buffer_size) |
Set the size of the kernel event buffer for the request. More... | |
size_t | gpiod_request_config_get_event_buffer_size (struct gpiod_request_config *config) |
Get the edge event buffer size for the request config. More... | |
void | gpiod_line_request_release (struct gpiod_line_request *request) |
Release the requested lines and free all associated resources. More... | |
const char * | gpiod_line_request_get_chip_name (struct gpiod_line_request *request) |
Get the name of the chip this request was made on. More... | |
size_t | gpiod_line_request_get_num_requested_lines (struct gpiod_line_request *request) |
Get the number of lines in the request. More... | |
size_t | gpiod_line_request_get_requested_offsets (struct gpiod_line_request *request, unsigned int *offsets, size_t max_offsets) |
Get the offsets of the lines in the request. More... | |
enum gpiod_line_value | gpiod_line_request_get_value (struct gpiod_line_request *request, unsigned int offset) |
Get the value of a single requested line. More... | |
int | gpiod_line_request_get_values_subset (struct gpiod_line_request *request, size_t num_values, const unsigned int *offsets, enum gpiod_line_value *values) |
Get the values of a subset of requested lines. More... | |
int | gpiod_line_request_get_values (struct gpiod_line_request *request, enum gpiod_line_value *values) |
Get the values of all requested lines. More... | |
int | gpiod_line_request_set_value (struct gpiod_line_request *request, unsigned int offset, enum gpiod_line_value value) |
Set the value of a single requested line. More... | |
int | gpiod_line_request_set_values_subset (struct gpiod_line_request *request, size_t num_values, const unsigned int *offsets, const enum gpiod_line_value *values) |
Set the values of a subset of requested lines. More... | |
int | gpiod_line_request_set_values (struct gpiod_line_request *request, const enum gpiod_line_value *values) |
Set the values of all lines associated with a request. More... | |
int | gpiod_line_request_reconfigure_lines (struct gpiod_line_request *request, struct gpiod_line_config *config) |
Update the configuration of lines associated with a line request. More... | |
int | gpiod_line_request_get_fd (struct gpiod_line_request *request) |
Get the file descriptor associated with a line request. More... | |
int | gpiod_line_request_wait_edge_events (struct gpiod_line_request *request, int64_t timeout_ns) |
Wait for edge events on any of the requested lines. More... | |
int | gpiod_line_request_read_edge_events (struct gpiod_line_request *request, struct gpiod_edge_event_buffer *buffer, size_t max_events) |
Read a number of edge events from a line request. More... | |
void | gpiod_edge_event_free (struct gpiod_edge_event *event) |
Free the edge event object. More... | |
struct gpiod_edge_event * | gpiod_edge_event_copy (struct gpiod_edge_event *event) |
Copy the edge event object. More... | |
enum gpiod_edge_event_type | gpiod_edge_event_get_event_type (struct gpiod_edge_event *event) |
Get the event type. More... | |
uint64_t | gpiod_edge_event_get_timestamp_ns (struct gpiod_edge_event *event) |
Get the timestamp of the event. More... | |
unsigned int | gpiod_edge_event_get_line_offset (struct gpiod_edge_event *event) |
Get the offset of the line which triggered the event. More... | |
unsigned long | gpiod_edge_event_get_global_seqno (struct gpiod_edge_event *event) |
Get the global sequence number of the event. More... | |
unsigned long | gpiod_edge_event_get_line_seqno (struct gpiod_edge_event *event) |
Get the event sequence number specific to the line. More... | |
struct gpiod_edge_event_buffer * | gpiod_edge_event_buffer_new (size_t capacity) |
Create a new edge event buffer. More... | |
size_t | gpiod_edge_event_buffer_get_capacity (struct gpiod_edge_event_buffer *buffer) |
Get the capacity (the max number of events that can be stored) of the event buffer. More... | |
void | gpiod_edge_event_buffer_free (struct gpiod_edge_event_buffer *buffer) |
Free the edge event buffer and release all associated resources. More... | |
struct gpiod_edge_event * | gpiod_edge_event_buffer_get_event (struct gpiod_edge_event_buffer *buffer, unsigned long index) |
Get an event stored in the buffer. More... | |
size_t | gpiod_edge_event_buffer_get_num_events (struct gpiod_edge_event_buffer *buffer) |
Get the number of events a buffer has stored. More... | |
bool | gpiod_is_gpiochip_device (const char *path) |
Check if the file pointed to by path is a GPIO chip character device. More... | |
const char * | gpiod_api_version (void) |
Get the API version of the library as a human-readable string. More... | |