Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  ib.h   Sprache: C

 
/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */
/*
 * Copyright (c) 2010 Intel Corporation.  All rights reserved.
 */


#ifndef _RDMA_IB_H
#define _RDMA_IB_H

#include <linux/types.h>
#include <linux/sched.h>
#include <linux/cred.h>
#include <linux/uaccess.h>
#include <linux/fs.h>

struct ib_addr {
 union {
  __u8  uib_addr8[16];
  __be16  uib_addr16[8];
  __be32  uib_addr32[4];
  __be64  uib_addr64[2];
 } ib_u;
#define sib_addr8  ib_u.uib_addr8
#define sib_addr16  ib_u.uib_addr16
#define sib_addr32  ib_u.uib_addr32
#define sib_addr64  ib_u.uib_addr64
#define sib_raw   ib_u.uib_addr8
#define sib_subnet_prefix ib_u.uib_addr64[0]
#define sib_interface_id ib_u.uib_addr64[1]
};

static inline bool ib_addr_any(const struct ib_addr *a)
{
 return ((a->sib_addr64[0] | a->sib_addr64[1]) == 0);
}

static inline bool ib_addr_loopback(const struct ib_addr *a)
{
 return ((a->sib_addr32[0] | a->sib_addr32[1] |
   a->sib_addr32[2] | (a->sib_addr32[3] ^ htonl(1))) == 0);
}

static inline void ib_addr_set(struct ib_addr *addr,
          __be32 w1, __be32 w2, __be32 w3, __be32 w4)
{
 addr->sib_addr32[0] = w1;
 addr->sib_addr32[1] = w2;
 addr->sib_addr32[2] = w3;
 addr->sib_addr32[3] = w4;
}

static inline int ib_addr_cmp(const struct ib_addr *a1, const struct ib_addr *a2)
{
 return memcmp(a1, a2, sizeof(struct ib_addr));
}

struct sockaddr_ib {
 unsigned short int sib_family; /* AF_IB */
 __be16   sib_pkey;
 __be32   sib_flowinfo;
 struct ib_addr  sib_addr;
 __be64   sib_sid;
 __be64   sib_sid_mask;
 __u64   sib_scope_id;
};

/*
 * The IB interfaces that use write() as bi-directional ioctl() are
 * fundamentally unsafe, since there are lots of ways to trigger "write()"
 * calls from various contexts with elevated privileges. That includes the
 * traditional suid executable error message writes, but also various kernel
 * interfaces that can write to file descriptors.
 *
 * This function provides protection for the legacy API by restricting the
 * calling context.
 */

static inline bool ib_safe_file_access(struct file *filp)
{
 return filp->f_cred == current_cred();
}

#endif /* _RDMA_IB_H */

Messung V0.5
C=96 H=91 G=93

¤ Dauer der Verarbeitung: 0.0 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.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge