003 File Manager
Current Path:
/usr/src/contrib/ofed/libibverbs
usr
/
src
/
contrib
/
ofed
/
libibverbs
/
📁
..
📄
alloca.h
(359 B)
📄
arch.h
(1.9 KB)
📄
cmd.c
(60.7 KB)
📄
compat-1_0.c
(26.36 KB)
📄
config.h
(998 B)
📄
device.c
(9.99 KB)
📄
driver.h
(11.89 KB)
📄
enum_strs.c
(4.89 KB)
📁
examples
📄
ibverbs.h
(4.18 KB)
📄
init.c
(9.39 KB)
📄
kern-abi.h
(25.17 KB)
📄
libibverbs.map
(3.11 KB)
📁
man
📄
marshall.c
(4.79 KB)
📄
marshall.h
(2.19 KB)
📄
memory.c
(14.17 KB)
📄
neigh.c
(19.13 KB)
📄
neigh.h
(1.43 KB)
📄
nl1_compat.h
(1.78 KB)
📄
opcode.h
(5.56 KB)
📄
sa-kern-abi.h
(1.58 KB)
📄
sa.h
(3.98 KB)
📄
sysfs.c
(2.59 KB)
📄
verbs.c
(26.15 KB)
📄
verbs.h
(61.88 KB)
Editing: sysfs.c
/* * Copyright (c) 2006 Cisco Systems, Inc. All rights reserved. * * This software is available to you under a choice of one of two * licenses. You may choose to be licensed under the terms of the GNU * General Public License (GPL) Version 2, available from the file * COPYING in the main directory of this source tree, or the * OpenIB.org BSD license below: * * Redistribution and use in source and binary forms, with or * without modification, are permitted provided that the following * conditions are met: * * - Redistributions of source code must retain the above * copyright notice, this list of conditions and the following * disclaimer. * * - Redistributions in binary form must reproduce the above * copyright notice, this list of conditions and the following * disclaimer in the documentation and/or other materials * provided with the distribution. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #define _GNU_SOURCE #include <config.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <string.h> #include <sys/sysctl.h> #include "ibverbs.h" static const char *sysfs_path; const char *ibv_get_sysfs_path(void) { const char *env = NULL; if (sysfs_path) return sysfs_path; /* * Only follow use path passed in through the calling user's * environment if we're not running SUID. */ if (getuid() == geteuid()) env = getenv("SYSFS_PATH"); if (env) { int len; char *dup; sysfs_path = dup = strndup(env, IBV_SYSFS_PATH_MAX); len = strlen(dup); while (len > 0 && dup[len - 1] == '/') { --len; dup[len] = '\0'; } } else sysfs_path = "/sys"; return sysfs_path; } int ibv_read_sysfs_file(const char *dir, const char *file, char *buf, size_t size) { char *path, *s; int ret; size_t len; if (asprintf(&path, "%s/%s", dir, file) < 0) return -1; for (s = &path[0]; *s != '\0'; s++) if (*s == '/') *s = '.'; len = size; ret = sysctlbyname(&path[1], buf, &len, NULL, 0); free(path); if (ret == -1) return -1; if (len > 0 && buf[len - 1] == '\n') buf[--len] = '\0'; return len; }
Upload File
Create Folder