mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-30 00:00:16 +01:00
lws_plat_fd introduce struct
Originally from https://github.com/warmcat/libwebsockets/pull/363 Modified by AG to change the emphasis to exporting lws plat handlers for use by the user code portably
This commit is contained in:
parent
4e512dd3a9
commit
11260dac18
1 changed files with 31 additions and 3 deletions
|
@ -358,9 +358,6 @@ enum lws_callback_reasons {
|
||||||
LWS_CALLBACK_UNLOCK_POLL = 36,
|
LWS_CALLBACK_UNLOCK_POLL = 36,
|
||||||
|
|
||||||
LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY = 37,
|
LWS_CALLBACK_OPENSSL_CONTEXT_REQUIRES_PRIVATE_KEY = 37,
|
||||||
|
|
||||||
LWS_CALLBACK_FILE_OPEN = 38,
|
|
||||||
LWS_CALLBACK_FILE_SEEK =
|
|
||||||
|
|
||||||
/****** add new things just above ---^ ******/
|
/****** add new things just above ---^ ******/
|
||||||
|
|
||||||
|
@ -370,6 +367,7 @@ enum lws_callback_reasons {
|
||||||
|
|
||||||
#if defined(_WIN32) && (_WIN32_WINNT < 0x0600)
|
#if defined(_WIN32) && (_WIN32_WINNT < 0x0600)
|
||||||
typedef SOCKET lws_sockfd_type;
|
typedef SOCKET lws_sockfd_type;
|
||||||
|
typedef HANDLE lws_filefd_type;
|
||||||
#define lws_sockfd_valid(sfd) (!!sfd)
|
#define lws_sockfd_valid(sfd) (!!sfd)
|
||||||
struct lws_pollfd {
|
struct lws_pollfd {
|
||||||
lws_sockfd_type fd;
|
lws_sockfd_type fd;
|
||||||
|
@ -382,6 +380,7 @@ WINSOCK_API_LINKAGE int WSAAPI WSAPoll(struct lws_pollfd fdArray[], ULONG fds, I
|
||||||
#if defined(MBED_OPERATORS)
|
#if defined(MBED_OPERATORS)
|
||||||
/* it's a class lws_conn * */
|
/* it's a class lws_conn * */
|
||||||
typedef void * lws_sockfd_type;
|
typedef void * lws_sockfd_type;
|
||||||
|
typedef void * lws_filefd_type;
|
||||||
#define lws_sockfd_valid(sfd) (!!sfd)
|
#define lws_sockfd_valid(sfd) (!!sfd)
|
||||||
struct pollfd {
|
struct pollfd {
|
||||||
lws_sockfd_type fd;
|
lws_sockfd_type fd;
|
||||||
|
@ -403,6 +402,7 @@ void mbed3_tcp_stream_bind(void *sock, int port, struct lws *);
|
||||||
void mbed3_tcp_stream_accept(void *sock, struct lws *);
|
void mbed3_tcp_stream_accept(void *sock, struct lws *);
|
||||||
#else
|
#else
|
||||||
typedef int lws_sockfd_type;
|
typedef int lws_sockfd_type;
|
||||||
|
typedef int lws_filefd_type;
|
||||||
#define lws_sockfd_valid(sfd) (sfd >= 0)
|
#define lws_sockfd_valid(sfd) (sfd >= 0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -418,6 +418,34 @@ struct lws_pollargs {
|
||||||
int prev_events; /* the previous event mask */
|
int prev_events; /* the previous event mask */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct lws_plat_file_ops - Platform-specific file operations
|
||||||
|
*
|
||||||
|
* These provide platform-agnostic ways to deal with filesystem access in the
|
||||||
|
* library and in the user code.
|
||||||
|
*
|
||||||
|
* @open: Open file (always binary access if plat supports it)
|
||||||
|
* filelen is filled on exit to be the length of the file
|
||||||
|
* flags should be set to O_RDONLY or O_RDWR
|
||||||
|
* @close: Close file
|
||||||
|
* @seek_cur: Seek from current position
|
||||||
|
* @read: Read fron file *amount is set on exit to amount read
|
||||||
|
* @write: Write to file *amount is set on exit as amount written
|
||||||
|
*/
|
||||||
|
struct lws_plat_file_ops {
|
||||||
|
lws_filefd_type (*open)(const char *filename, unsigned long *filelen,
|
||||||
|
int flags);
|
||||||
|
int (*close)(lws_filefd_type fd);
|
||||||
|
unsigned long (*seek_cur)(lws_filefd_type fd, long offset_from_cur_pos);
|
||||||
|
int (*read)(lws_filefd_type fd, unsigned long *amount,
|
||||||
|
unsigned char *buf, unsigned long len);
|
||||||
|
int (*write)(lws_filefd_type fd, unsigned long *amount,
|
||||||
|
unsigned char *buf, unsigned long len);
|
||||||
|
|
||||||
|
/* Add new things just above here ---^
|
||||||
|
* This is part of the ABI, don't needlessly break compatibilty */
|
||||||
|
};
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* NOTE: These public enums are part of the abi. If you want to add one,
|
* NOTE: These public enums are part of the abi. If you want to add one,
|
||||||
* add it at where specified so existing users are unaffected.
|
* add it at where specified so existing users are unaffected.
|
||||||
|
|
Loading…
Add table
Reference in a new issue