Lines Matching full:struct
28 struct console;
29 struct config;
47 struct handler;
49 struct handler_type {
51 struct handler *(*init)(const struct handler_type *type,
52 struct console *console, struct config *config);
53 void (*fini)(struct handler *handler);
54 int (*baudrate)(struct handler *handler, speed_t baudrate);
55 void (*deselect)(struct handler *handler);
58 struct handler {
59 const struct handler_type *type;
75 __attribute__((used)) struct handler_type * \
79 int console_data_out(struct console *console, const uint8_t *data, size_t len);
87 typedef char(socket_path_t)[sizeof(((struct sockaddr_un *)NULL)->sun_path)];
89 typedef enum poller_ret (*poller_event_fn_t)(struct handler *handler,
91 typedef enum poller_ret (*poller_timeout_fn_t)(struct handler *handler,
101 struct console_server {
102 struct {
108 struct {
113 struct {
122 struct pollfd *pollfds;
128 struct config *config;
131 struct console *active;
133 struct console **consoles;
136 // index into (struct console_server)->pollfds
139 struct sd_bus *bus;
142 struct console_mux *mux;
145 struct console {
148 struct console_server *server;
156 struct ringbuffer *rb;
158 struct handler **handlers;
161 struct poller **pollers;
169 struct poller {
170 struct handler *handler;
174 struct timeval timeout;
177 // index into (struct console_server)->pollfds
181 struct poller *console_poller_register(struct console *console,
182 struct handler *handler,
187 void console_poller_unregister(struct console *console, struct poller *poller);
189 void console_poller_set_events(struct console *console, struct poller *poller,
192 void console_poller_set_timeout(struct console *console, struct poller *poller,
193 const struct timeval *tv);
205 struct ringbuffer_consumer;
207 struct ringbuffer {
211 struct ringbuffer_consumer **consumers;
215 struct ringbuffer_consumer {
216 struct ringbuffer *rb;
222 struct ringbuffer *ringbuffer_init(size_t size);
223 void ringbuffer_fini(struct ringbuffer *rb);
225 struct ringbuffer_consumer *
226 ringbuffer_consumer_register(struct ringbuffer *rb,
229 void ringbuffer_consumer_unregister(struct ringbuffer_consumer *rbc);
231 int ringbuffer_queue(struct ringbuffer *rb, uint8_t *data, size_t len);
233 size_t ringbuffer_dequeue_peek(struct ringbuffer_consumer *rbc, size_t offset,
236 int ringbuffer_dequeue_commit(struct ringbuffer_consumer *rbc, size_t len);
238 size_t ringbuffer_len(struct ringbuffer_consumer *rbc);
241 struct ringbuffer_consumer *
242 console_ringbuffer_consumer_register(struct console *console,
246 void tty_init_termios(struct console_server *server);
250 ssize_t console_socket_path_readable(const struct sockaddr_un *addr,
257 int dbus_server_init(struct console_server *server);
258 void dbus_server_fini(struct console_server *server);
261 int dbus_init(struct console *console,
262 struct config *config __attribute__((unused)));
265 int dbus_create_socket_consumer(struct console *console);
283 ssize_t console_server_request_pollfd(struct console_server *server, int fd,
286 int console_server_release_pollfd(struct console_server *server,