|
libgpiod
|
#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. | |
| void | gpiod_chip_close (struct gpiod_chip *chip) |
| Close the chip and release all associated resources. | |
| struct gpiod_chip_info * | gpiod_chip_get_info (struct gpiod_chip *chip) |
| Get information about the chip. | |
| const char * | gpiod_chip_get_path (struct gpiod_chip *chip) |
| Get the path used to open the chip. | |
| struct gpiod_line_info * | gpiod_chip_get_line_info (struct gpiod_chip *chip, unsigned int offset) |
| Get a snapshot of information about a line. | |
| 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. | |
| int | gpiod_chip_unwatch_line_info (struct gpiod_chip *chip, unsigned int offset) |
| Stop watching a line for status changes. | |
| int | gpiod_chip_get_fd (struct gpiod_chip *chip) |
| Get the file descriptor associated with the chip. | |
| 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. | |
| struct gpiod_info_event * | gpiod_chip_read_info_event (struct gpiod_chip *chip) |
| Read a single line status change event from the chip. | |
| 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. | |
| 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. | |
| void | gpiod_chip_info_free (struct gpiod_chip_info *info) |
| Free a chip info object and release all associated resources. | |
| const char * | gpiod_chip_info_get_name (struct gpiod_chip_info *info) |
| Get the name of the chip as represented in the kernel. | |
| const char * | gpiod_chip_info_get_label (struct gpiod_chip_info *info) |
| Get the label of the chip as represented in the kernel. | |
| size_t | gpiod_chip_info_get_num_lines (struct gpiod_chip_info *info) |
| Get the number of lines exposed by the chip. | |
| void | gpiod_line_info_free (struct gpiod_line_info *info) |
| Free a line info object and release all associated resources. | |
| struct gpiod_line_info * | gpiod_line_info_copy (struct gpiod_line_info *info) |
| Copy a line info object. | |
| unsigned int | gpiod_line_info_get_offset (struct gpiod_line_info *info) |
| Get the offset of the line. | |
| const char * | gpiod_line_info_get_name (struct gpiod_line_info *info) |
| Get the name of the line. | |
| bool | gpiod_line_info_is_used (struct gpiod_line_info *info) |
| Check if the line is in use. | |
| const char * | gpiod_line_info_get_consumer (struct gpiod_line_info *info) |
| Get the name of the consumer of the line. | |
| enum gpiod_line_direction | gpiod_line_info_get_direction (struct gpiod_line_info *info) |
| Get the direction setting of the line. | |
| enum gpiod_line_edge | gpiod_line_info_get_edge_detection (struct gpiod_line_info *info) |
| Get the edge detection setting of the line. | |
| enum gpiod_line_bias | gpiod_line_info_get_bias (struct gpiod_line_info *info) |
| Get the bias setting of the line. | |
| enum gpiod_line_drive | gpiod_line_info_get_drive (struct gpiod_line_info *info) |
| Get the drive setting of the line. | |
| 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. | |
| 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). | |
| unsigned long | gpiod_line_info_get_debounce_period_us (struct gpiod_line_info *info) |
| Get the debounce period of the line, in microseconds. | |
| 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. | |
| void | gpiod_info_event_free (struct gpiod_info_event *event) |
| Free the info event object and release all associated resources. | |
| 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. | |
| uint64_t | gpiod_info_event_get_timestamp_ns (struct gpiod_info_event *event) |
| Get the timestamp of the event. | |
| 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. | |
| struct gpiod_line_settings * | gpiod_line_settings_new (void) |
| Create a new line settings object. | |
| void | gpiod_line_settings_free (struct gpiod_line_settings *settings) |
| Free the line settings object and release all associated resources. | |
| void | gpiod_line_settings_reset (struct gpiod_line_settings *settings) |
| Reset the line settings object to its default values. | |
| struct gpiod_line_settings * | gpiod_line_settings_copy (struct gpiod_line_settings *settings) |
| Copy the line settings object. | |
| int | gpiod_line_settings_set_direction (struct gpiod_line_settings *settings, enum gpiod_line_direction direction) |
| Set direction. | |
| enum gpiod_line_direction | gpiod_line_settings_get_direction (struct gpiod_line_settings *settings) |
| Get direction. | |
| int | gpiod_line_settings_set_edge_detection (struct gpiod_line_settings *settings, enum gpiod_line_edge edge) |
| Set edge detection. | |
| enum gpiod_line_edge | gpiod_line_settings_get_edge_detection (struct gpiod_line_settings *settings) |
| Get edge detection. | |
| int | gpiod_line_settings_set_bias (struct gpiod_line_settings *settings, enum gpiod_line_bias bias) |
| Set bias. | |
| enum gpiod_line_bias | gpiod_line_settings_get_bias (struct gpiod_line_settings *settings) |
| Get bias. | |
| int | gpiod_line_settings_set_drive (struct gpiod_line_settings *settings, enum gpiod_line_drive drive) |
| Set drive. | |
| enum gpiod_line_drive | gpiod_line_settings_get_drive (struct gpiod_line_settings *settings) |
| Get drive. | |
| void | gpiod_line_settings_set_active_low (struct gpiod_line_settings *settings, bool active_low) |
| Set active-low setting. | |
| bool | gpiod_line_settings_get_active_low (struct gpiod_line_settings *settings) |
| Get active-low setting. | |
| void | gpiod_line_settings_set_debounce_period_us (struct gpiod_line_settings *settings, unsigned long period) |
| Set debounce period. | |
| unsigned long | gpiod_line_settings_get_debounce_period_us (struct gpiod_line_settings *settings) |
| Get debounce period. | |
| int | gpiod_line_settings_set_event_clock (struct gpiod_line_settings *settings, enum gpiod_line_clock event_clock) |
| Set event clock. | |
| enum gpiod_line_clock | gpiod_line_settings_get_event_clock (struct gpiod_line_settings *settings) |
| Get event clock setting. | |
| int | gpiod_line_settings_set_output_value (struct gpiod_line_settings *settings, enum gpiod_line_value value) |
| Set the output value. | |
| enum gpiod_line_value | gpiod_line_settings_get_output_value (struct gpiod_line_settings *settings) |
| Get the output value. | |
| struct gpiod_line_config * | gpiod_line_config_new (void) |
| Create a new line config object. | |
| void | gpiod_line_config_free (struct gpiod_line_config *config) |
| Free the line config object and release all associated resources. | |
| void | gpiod_line_config_reset (struct gpiod_line_config *config) |
| Reset the line config object. | |
| 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. | |
| struct gpiod_line_settings * | gpiod_line_config_get_line_settings (struct gpiod_line_config *config, unsigned int offset) |
| Get line settings for offset. | |
| 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. | |
| size_t | gpiod_line_config_get_num_configured_offsets (struct gpiod_line_config *config) |
| Get the number of configured line offsets. | |
| size_t | gpiod_line_config_get_configured_offsets (struct gpiod_line_config *config, unsigned int *offsets, size_t max_offsets) |
| Get configured offsets. | |
| struct gpiod_request_config * | gpiod_request_config_new (void) |
| Create a new request config object. | |
| void | gpiod_request_config_free (struct gpiod_request_config *config) |
| Free the request config object and release all associated resources. | |
| void | gpiod_request_config_set_consumer (struct gpiod_request_config *config, const char *consumer) |
| Set the consumer name for the request. | |
| const char * | gpiod_request_config_get_consumer (struct gpiod_request_config *config) |
| Get the consumer name configured in the request config. | |
| 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. | |
| size_t | gpiod_request_config_get_event_buffer_size (struct gpiod_request_config *config) |
| Get the edge event buffer size for the request config. | |
| void | gpiod_line_request_release (struct gpiod_line_request *request) |
| Release the requested lines and free all associated resources. | |
| const char * | gpiod_line_request_get_chip_name (struct gpiod_line_request *request) |
| Get the name of the chip this request was made on. | |
| size_t | gpiod_line_request_get_num_requested_lines (struct gpiod_line_request *request) |
| Get the number of lines in the request. | |
| 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. | |
| 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. | |
| 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. | |
| int | gpiod_line_request_get_values (struct gpiod_line_request *request, enum gpiod_line_value *values) |
| Get the values of all requested lines. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| int | gpiod_line_request_get_fd (struct gpiod_line_request *request) |
| Get the file descriptor associated with a line request. | |
| 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. | |
| 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. | |
| void | gpiod_edge_event_free (struct gpiod_edge_event *event) |
| Free the edge event object. | |
| struct gpiod_edge_event * | gpiod_edge_event_copy (struct gpiod_edge_event *event) |
| Copy the edge event object. | |
| enum gpiod_edge_event_type | gpiod_edge_event_get_event_type (struct gpiod_edge_event *event) |
| Get the event type. | |
| uint64_t | gpiod_edge_event_get_timestamp_ns (struct gpiod_edge_event *event) |
| Get the timestamp of the event. | |
| unsigned int | gpiod_edge_event_get_line_offset (struct gpiod_edge_event *event) |
| Get the offset of the line which triggered the event. | |
| unsigned long | gpiod_edge_event_get_global_seqno (struct gpiod_edge_event *event) |
| Get the global sequence number of the event. | |
| unsigned long | gpiod_edge_event_get_line_seqno (struct gpiod_edge_event *event) |
| Get the event sequence number specific to the line. | |
| struct gpiod_edge_event_buffer * | gpiod_edge_event_buffer_new (size_t capacity) |
| Create a new edge event buffer. | |
| 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. | |
| void | gpiod_edge_event_buffer_free (struct gpiod_edge_event_buffer *buffer) |
| Free the edge event buffer and release all associated resources. | |
| 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. | |
| size_t | gpiod_edge_event_buffer_get_num_events (struct gpiod_edge_event_buffer *buffer) |
| Get the number of events a buffer has stored. | |
| bool | gpiod_is_gpiochip_device (const char *path) |
| Check if the file pointed to by path is a GPIO chip character device. | |
| const char * | gpiod_api_version (void) |
| Get the API version of the library as a human-readable string. | |