Files
kernel/include/net/class.h
T
2020-08-05 01:58:21 +03:00

36 lines
940 B
C

#pragma once
#include "sys/types.h"
#include "sys/list.h"
struct io_notify;
struct sockaddr;
struct socket;
struct sockops {
ssize_t (*recvfrom) (struct socket *, void *, size_t, struct sockaddr *, size_t *);
ssize_t (*sendto) (struct socket *, const void *, size_t, struct sockaddr *, size_t);
int (*open) (struct socket *);
void (*close) (struct socket *);
int (*bind) (struct socket *, struct sockaddr *, size_t);
int (*connect) (struct socket *, struct sockaddr *, size_t);
int (*setsockopt) (struct socket *, int, void *, size_t);
int (*accept) (struct socket *, struct socket *);
int (*count_pending) (struct socket *);
struct io_notify *(*get_rx_notify) (struct socket *);
};
struct socket_class {
const char *name;
int domain, type;
int (*supports) (int proto);
struct sockops *ops;
struct list_head link;
};
void socket_class_register(struct socket_class *cls);