Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/include/linux/sunrpc/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 1 kB image not shown  

Quelle  svcsock.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * linux/include/linux/sunrpc/svcsock.h
 *
 * RPC server socket I/O.
 *
 * Copyright (C) 1995, 1996 Olaf Kirch <okir@monad.swb.de>
 */


#ifndef SUNRPC_SVCSOCK_H
#define SUNRPC_SVCSOCK_H

#include <linux/sunrpc/svc.h>
#include <linux/sunrpc/svc_xprt.h>

/*
 * RPC server socket.
 */

struct svc_sock {
 struct svc_xprt  sk_xprt;
 struct socket *  sk_sock; /* berkeley socket layer */
 struct sock *  sk_sk;  /* INET layer */

 /* We keep the old state_change and data_ready CB's here */
 void   (*sk_ostate)(struct sock *);
 void   (*sk_odata)(struct sock *);
 void   (*sk_owspace)(struct sock *);

 /* private TCP part */
 /* On-the-wire fragment header: */
 __be32   sk_marker;
 /* As we receive a record, this includes the length received so
 * far (including the fragment header): */

 u32   sk_tcplen;
 /* Total length of the data (not including fragment headers)
 * received so far in the fragments making up this rpc: */

 u32   sk_datalen;

 struct page_frag_cache  sk_frag_cache;

 struct completion sk_handshake_done;

 /* received data */
 unsigned long  sk_maxpages;
 struct page *  sk_pages[] __counted_by(sk_maxpages);
};

static inline u32 svc_sock_reclen(struct svc_sock *svsk)
{
 return be32_to_cpu(svsk->sk_marker) & RPC_FRAGMENT_SIZE_MASK;
}

static inline u32 svc_sock_final_rec(struct svc_sock *svsk)
{
 return be32_to_cpu(svsk->sk_marker) & RPC_LAST_STREAM_FRAGMENT;
}

/*
 * Function prototypes.
 */

void  svc_recv(struct svc_rqst *rqstp);
void  svc_send(struct svc_rqst *rqstp);
int  svc_addsock(struct svc_serv *serv, struct net *net,
       const int fd, char *name_return, const size_t len,
       const struct cred *cred);
void  svc_init_xprt_sock(void);
void  svc_cleanup_xprt_sock(void);

/*
 * svc_makesock socket characteristics
 */

#define SVC_SOCK_DEFAULTS (0U)
#define SVC_SOCK_ANONYMOUS (1U << 0) /* don't register with pmap */
#define SVC_SOCK_TEMPORARY (1U << 1) /* flag socket as temporary */

#endif /* SUNRPC_SVCSOCK_H */

Messung V0.5
C=87 H=100 G=93

¤ Dauer der Verarbeitung: 0.14 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.