cregit-Linux how code gets into the kernel

Release 4.15 net/vmw_vsock/vsock_addr.c

Directory: net/vmw_vsock
/*
 * VMware vSockets Driver
 *
 * Copyright (C) 2007-2012 VMware, Inc. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the Free
 * Software Foundation version 2 and no later version.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
 * more details.
 */

#include <linux/types.h>
#include <linux/socket.h>
#include <linux/stddef.h>
#include <net/sock.h>
#include <net/vsock_addr.h>


void vsock_addr_init(struct sockaddr_vm *addr, u32 cid, u32 port) { memset(addr, 0, sizeof(*addr)); addr->svm_family = AF_VSOCK; addr->svm_cid = cid; addr->svm_port = port; }

Contributors

PersonTokensPropCommitsCommitProp
Andy King47100.00%1100.00%
Total47100.00%1100.00%

EXPORT_SYMBOL_GPL(vsock_addr_init);
int vsock_addr_validate(const struct sockaddr_vm *addr) { if (!addr) return -EFAULT; if (addr->svm_family != AF_VSOCK) return -EAFNOSUPPORT; if (addr->svm_zero[0] != 0) return -EINVAL; return 0; }

Contributors

PersonTokensPropCommitsCommitProp
Andy King50100.00%1100.00%
Total50100.00%1100.00%

EXPORT_SYMBOL_GPL(vsock_addr_validate);
bool vsock_addr_bound(const struct sockaddr_vm *addr) { return addr->svm_port != VMADDR_PORT_ANY; }

Contributors

PersonTokensPropCommitsCommitProp
Andy King18100.00%1100.00%
Total18100.00%1100.00%

EXPORT_SYMBOL_GPL(vsock_addr_bound);
void vsock_addr_unbind(struct sockaddr_vm *addr) { vsock_addr_init(addr, VMADDR_CID_ANY, VMADDR_PORT_ANY); }

Contributors

PersonTokensPropCommitsCommitProp
Andy King19100.00%1100.00%
Total19100.00%1100.00%

EXPORT_SYMBOL_GPL(vsock_addr_unbind);
bool vsock_addr_equals_addr(const struct sockaddr_vm *addr, const struct sockaddr_vm *other) { return addr->svm_cid == other->svm_cid && addr->svm_port == other->svm_port; }

Contributors

PersonTokensPropCommitsCommitProp
Andy King34100.00%1100.00%
Total34100.00%1100.00%

EXPORT_SYMBOL_GPL(vsock_addr_equals_addr);
int vsock_addr_cast(const struct sockaddr *addr, size_t len, struct sockaddr_vm **out_addr) { if (len < sizeof(**out_addr)) return -EFAULT; *out_addr = (struct sockaddr_vm *)addr; return vsock_addr_validate(*out_addr); }

Contributors

PersonTokensPropCommitsCommitProp
Andy King52100.00%1100.00%
Total52100.00%1100.00%

EXPORT_SYMBOL_GPL(vsock_addr_cast);

Overall Contributors

PersonTokensPropCommitsCommitProp
Andy King26599.62%150.00%
Asias He10.38%150.00%
Total266100.00%2100.00%
Directory: net/vmw_vsock
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.