X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=StdLib%2FLibC%2FUefi%2Fwritev.c;fp=StdLib%2FLibC%2FUefi%2Fwritev.c;h=0000000000000000000000000000000000000000;hp=31d2acd6291561b0875e9c0d257abf00076d83ce;hb=964f432b9b0afe103c41c7613fade3e699118afe;hpb=e2d3a25f1a3135221a9c8061e1b8f90245d727eb diff --git a/StdLib/LibC/Uefi/writev.c b/StdLib/LibC/Uefi/writev.c deleted file mode 100644 index 31d2acd629..0000000000 --- a/StdLib/LibC/Uefi/writev.c +++ /dev/null @@ -1,144 +0,0 @@ -/** @file - * - * Copyright (c) 1999 - 2014, Intel Corporation. All rights reserved.
- * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - * 2. 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. - * - * 3. All advertising materials mentioning features or use of this software must - * display the following acknowledgement: - * - * This product includes software developed by Intel Corporation and its - * contributors. - * - * 4. Neither the name of Intel Corporation or its contributors may be used to - * endorse or promote products derived from this software without specific - * prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -/*++ - -Module Name: - - writev.c - -Abstract: - - Functions implementing the standard "writev" system call interface - - -Revision History - ---*/ -#include - -#ifdef foo -#include -#include -#include -#define KERNEL -#include -#undef KERNEL -#include "./filedesc.h" - -#include -#include -#endif - -#include -#include -#include -#include -#ifndef KERNEL -#define KERNEL -#include -#undef KERNEL -#else -#include -#endif - -// -// Name: -// writev -// -// Description: -// BSD writev interface for libc -// -// Arguments: -// File Descriptor (index into file descriptor table) -// iovec pointer -// size of iovec array -// -// Returns: -// number of bytes written -// - -ssize_t -writev( - int fd, - const struct iovec *iov, - int iovcnt - ) -{ - const struct iovec *pVecTmp; - char *pBuf; - size_t TotalBytes; - size_t i; - size_t ret; - - // - // See how much memory we'll need - // - - for (i = 0, TotalBytes = 0, pVecTmp = iov; i < (size_t)iovcnt; i++, pVecTmp++) { - TotalBytes += pVecTmp->iov_len; - } - - // - // Allocate a contiguous buffer - // - - pBuf = (char*)malloc (TotalBytes); - if (pBuf == NULL) { - errno = ENOMEM; - return -1; - } - - // - // Copy vectors to the buffer - // - - for (; iovcnt; iovcnt--) { - bcopy(iov->iov_base, pBuf, iov->iov_len); - pBuf += iov->iov_len; - iov++; - } - - // - // Use standard write(2) then free buffer - // - - ret = write (fd, pBuf, TotalBytes); - free (pBuf); - - return (ret); -}