mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-07-01 03:22:48 -05:00
Rename FROMFIELD to 'container_of'.
Ian Jackson points out that the Linux kernel has a macro of this name with the same purpose, and suggests that it's a good idea to use the same name as they do, so that at least some people reading one code base might recognise it from the other. I never really thought very hard about what order FROMFIELD's parameters should go in, and therefore I'm pleasantly surprised to find that my order agrees with the kernel's, so I don't have to permute every call site as part of making this change :-)
This commit is contained in:
@ -106,7 +106,7 @@ static void handle_sentdata(struct handle *h, int new_backlog)
|
||||
|
||||
static Plug *sk_handle_plug(Socket *s, Plug *p)
|
||||
{
|
||||
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
|
||||
HandleSocket *hs = container_of(s, HandleSocket, sock);
|
||||
Plug *ret = hs->plug;
|
||||
if (p)
|
||||
hs->plug = p;
|
||||
@ -115,7 +115,7 @@ static Plug *sk_handle_plug(Socket *s, Plug *p)
|
||||
|
||||
static void sk_handle_close(Socket *s)
|
||||
{
|
||||
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
|
||||
HandleSocket *hs = container_of(s, HandleSocket, sock);
|
||||
|
||||
if (hs->defer_close) {
|
||||
hs->deferred_close = TRUE;
|
||||
@ -135,7 +135,7 @@ static void sk_handle_close(Socket *s)
|
||||
|
||||
static int sk_handle_write(Socket *s, const void *data, int len)
|
||||
{
|
||||
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
|
||||
HandleSocket *hs = container_of(s, HandleSocket, sock);
|
||||
|
||||
return handle_write(hs->send_h, data, len);
|
||||
}
|
||||
@ -151,14 +151,14 @@ static int sk_handle_write_oob(Socket *s, const void *data, int len)
|
||||
|
||||
static void sk_handle_write_eof(Socket *s)
|
||||
{
|
||||
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
|
||||
HandleSocket *hs = container_of(s, HandleSocket, sock);
|
||||
|
||||
handle_write_eof(hs->send_h);
|
||||
}
|
||||
|
||||
static void sk_handle_flush(Socket *s)
|
||||
{
|
||||
/* HandleSocket *hs = FROMFIELD(s, HandleSocket, sock); */
|
||||
/* HandleSocket *hs = container_of(s, HandleSocket, sock); */
|
||||
/* do nothing */
|
||||
}
|
||||
|
||||
@ -211,7 +211,7 @@ static void handle_socket_unfreeze(void *hsv)
|
||||
|
||||
static void sk_handle_set_frozen(Socket *s, int is_frozen)
|
||||
{
|
||||
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
|
||||
HandleSocket *hs = container_of(s, HandleSocket, sock);
|
||||
|
||||
if (is_frozen) {
|
||||
switch (hs->frozen) {
|
||||
@ -266,13 +266,13 @@ static void sk_handle_set_frozen(Socket *s, int is_frozen)
|
||||
|
||||
static const char *sk_handle_socket_error(Socket *s)
|
||||
{
|
||||
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
|
||||
HandleSocket *hs = container_of(s, HandleSocket, sock);
|
||||
return hs->error;
|
||||
}
|
||||
|
||||
static char *sk_handle_peer_info(Socket *s)
|
||||
{
|
||||
HandleSocket *hs = FROMFIELD(s, HandleSocket, sock);
|
||||
HandleSocket *hs = container_of(s, HandleSocket, sock);
|
||||
ULONG pid;
|
||||
static HMODULE kernel32_module;
|
||||
DECL_WINDOWS_FUNCTION(static, BOOL, GetNamedPipeClientProcessId,
|
||||
|
@ -909,7 +909,7 @@ SockAddr *sk_addr_dup(SockAddr *addr)
|
||||
|
||||
static Plug *sk_net_plug(Socket *sock, Plug *p)
|
||||
{
|
||||
NetSocket *s = FROMFIELD(sock, NetSocket, sock);
|
||||
NetSocket *s = container_of(sock, NetSocket, sock);
|
||||
Plug *ret = s->plug;
|
||||
if (p)
|
||||
s->plug = p;
|
||||
@ -1411,7 +1411,7 @@ Socket *sk_newlistener(const char *srcaddr, int port, Plug *plug,
|
||||
local_host_only, ADDRTYPE_IPV6);
|
||||
|
||||
if (other) {
|
||||
NetSocket *ns = FROMFIELD(other, NetSocket, sock);
|
||||
NetSocket *ns = container_of(other, NetSocket, sock);
|
||||
if (!ns->error) {
|
||||
ns->parent = ret;
|
||||
ret->child = ns;
|
||||
@ -1428,7 +1428,7 @@ Socket *sk_newlistener(const char *srcaddr, int port, Plug *plug,
|
||||
static void sk_net_close(Socket *sock)
|
||||
{
|
||||
extern char *do_select(SOCKET skt, int startup);
|
||||
NetSocket *s = FROMFIELD(sock, NetSocket, sock);
|
||||
NetSocket *s = container_of(sock, NetSocket, sock);
|
||||
|
||||
if (s->child)
|
||||
sk_net_close(&s->child->sock);
|
||||
@ -1539,7 +1539,7 @@ void try_send(NetSocket *s)
|
||||
|
||||
static int sk_net_write(Socket *sock, const void *buf, int len)
|
||||
{
|
||||
NetSocket *s = FROMFIELD(sock, NetSocket, sock);
|
||||
NetSocket *s = container_of(sock, NetSocket, sock);
|
||||
|
||||
assert(s->outgoingeof == EOF_NO);
|
||||
|
||||
@ -1559,7 +1559,7 @@ static int sk_net_write(Socket *sock, const void *buf, int len)
|
||||
|
||||
static int sk_net_write_oob(Socket *sock, const void *buf, int len)
|
||||
{
|
||||
NetSocket *s = FROMFIELD(sock, NetSocket, sock);
|
||||
NetSocket *s = container_of(sock, NetSocket, sock);
|
||||
|
||||
assert(s->outgoingeof == EOF_NO);
|
||||
|
||||
@ -1582,7 +1582,7 @@ static int sk_net_write_oob(Socket *sock, const void *buf, int len)
|
||||
|
||||
static void sk_net_write_eof(Socket *sock)
|
||||
{
|
||||
NetSocket *s = FROMFIELD(sock, NetSocket, sock);
|
||||
NetSocket *s = container_of(sock, NetSocket, sock);
|
||||
|
||||
assert(s->outgoingeof == EOF_NO);
|
||||
|
||||
@ -1785,13 +1785,13 @@ const char *sk_addr_error(SockAddr *addr)
|
||||
}
|
||||
static const char *sk_net_socket_error(Socket *sock)
|
||||
{
|
||||
NetSocket *s = FROMFIELD(sock, NetSocket, sock);
|
||||
NetSocket *s = container_of(sock, NetSocket, sock);
|
||||
return s->error;
|
||||
}
|
||||
|
||||
static char *sk_net_peer_info(Socket *sock)
|
||||
{
|
||||
NetSocket *s = FROMFIELD(sock, NetSocket, sock);
|
||||
NetSocket *s = container_of(sock, NetSocket, sock);
|
||||
#ifdef NO_IPV6
|
||||
struct sockaddr_in addr;
|
||||
#else
|
||||
@ -1823,7 +1823,7 @@ static char *sk_net_peer_info(Socket *sock)
|
||||
|
||||
static void sk_net_set_frozen(Socket *sock, int is_frozen)
|
||||
{
|
||||
NetSocket *s = FROMFIELD(sock, NetSocket, sock);
|
||||
NetSocket *s = container_of(sock, NetSocket, sock);
|
||||
if (s->frozen == is_frozen)
|
||||
return;
|
||||
s->frozen = is_frozen;
|
||||
|
@ -38,7 +38,7 @@ typedef struct NamedPipeServerSocket {
|
||||
|
||||
static Plug *sk_namedpipeserver_plug(Socket *s, Plug *p)
|
||||
{
|
||||
NamedPipeServerSocket *ps = FROMFIELD(s, NamedPipeServerSocket, sock);
|
||||
NamedPipeServerSocket *ps = container_of(s, NamedPipeServerSocket, sock);
|
||||
Plug *ret = ps->plug;
|
||||
if (p)
|
||||
ps->plug = p;
|
||||
@ -47,7 +47,7 @@ static Plug *sk_namedpipeserver_plug(Socket *s, Plug *p)
|
||||
|
||||
static void sk_namedpipeserver_close(Socket *s)
|
||||
{
|
||||
NamedPipeServerSocket *ps = FROMFIELD(s, NamedPipeServerSocket, sock);
|
||||
NamedPipeServerSocket *ps = container_of(s, NamedPipeServerSocket, sock);
|
||||
|
||||
if (ps->callback_handle)
|
||||
handle_free(ps->callback_handle);
|
||||
@ -64,7 +64,7 @@ static void sk_namedpipeserver_close(Socket *s)
|
||||
|
||||
static const char *sk_namedpipeserver_socket_error(Socket *s)
|
||||
{
|
||||
NamedPipeServerSocket *ps = FROMFIELD(s, NamedPipeServerSocket, sock);
|
||||
NamedPipeServerSocket *ps = container_of(s, NamedPipeServerSocket, sock);
|
||||
return ps->error;
|
||||
}
|
||||
|
||||
|
@ -284,7 +284,7 @@ static const char *serial_init(Frontend *frontend, Backend **backend_handle,
|
||||
|
||||
static void serial_free(Backend *be)
|
||||
{
|
||||
Serial *serial = FROMFIELD(be, Serial, backend);
|
||||
Serial *serial = container_of(be, Serial, backend);
|
||||
|
||||
serial_terminate(serial);
|
||||
expire_timer_context(serial);
|
||||
@ -293,7 +293,7 @@ static void serial_free(Backend *be)
|
||||
|
||||
static void serial_reconfig(Backend *be, Conf *conf)
|
||||
{
|
||||
Serial *serial = FROMFIELD(be, Serial, backend);
|
||||
Serial *serial = container_of(be, Serial, backend);
|
||||
|
||||
serial_configure(serial, serial->port, conf);
|
||||
|
||||
@ -308,7 +308,7 @@ static void serial_reconfig(Backend *be, Conf *conf)
|
||||
*/
|
||||
static int serial_send(Backend *be, const char *buf, int len)
|
||||
{
|
||||
Serial *serial = FROMFIELD(be, Serial, backend);
|
||||
Serial *serial = container_of(be, Serial, backend);
|
||||
|
||||
if (serial->out == NULL)
|
||||
return 0;
|
||||
@ -322,7 +322,7 @@ static int serial_send(Backend *be, const char *buf, int len)
|
||||
*/
|
||||
static int serial_sendbuffer(Backend *be)
|
||||
{
|
||||
Serial *serial = FROMFIELD(be, Serial, backend);
|
||||
Serial *serial = container_of(be, Serial, backend);
|
||||
return serial->bufsize;
|
||||
}
|
||||
|
||||
@ -351,7 +351,7 @@ static void serbreak_timer(void *ctx, unsigned long now)
|
||||
*/
|
||||
static void serial_special(Backend *be, SessionSpecialCode code, int arg)
|
||||
{
|
||||
Serial *serial = FROMFIELD(be, Serial, backend);
|
||||
Serial *serial = container_of(be, Serial, backend);
|
||||
|
||||
if (serial->port && code == SS_BRK) {
|
||||
logevent(serial->frontend, "Starting serial break at user request");
|
||||
@ -399,7 +399,7 @@ static int serial_sendok(Backend *be)
|
||||
|
||||
static void serial_unthrottle(Backend *be, int backlog)
|
||||
{
|
||||
Serial *serial = FROMFIELD(be, Serial, backend);
|
||||
Serial *serial = container_of(be, Serial, backend);
|
||||
if (serial->in)
|
||||
handle_unthrottle(serial->in, backlog);
|
||||
}
|
||||
@ -424,7 +424,7 @@ static void serial_provide_logctx(Backend *be, LogContext *logctx)
|
||||
|
||||
static int serial_exitcode(Backend *be)
|
||||
{
|
||||
Serial *serial = FROMFIELD(be, Serial, backend);
|
||||
Serial *serial = container_of(be, Serial, backend);
|
||||
if (serial->port != INVALID_HANDLE_VALUE)
|
||||
return -1; /* still connected */
|
||||
else
|
||||
|
Reference in New Issue
Block a user