Home | History | Annotate | Download | only in BsdSocketLib
      1 /** @file
      2   Implement the write API.
      3 
      4   Copyright (c) 2011, Intel Corporation
      5   All rights reserved. This program and the accompanying materials
      6   are licensed and made available under the terms and conditions of the BSD License
      7   which accompanies this distribution.  The full text of the license may be found at
      8   http://opensource.org/licenses/bsd-license.php
      9 
     10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 **/
     14 
     15 #include <SocketInternals.h>
     16 
     17 
     18 /**
     19   Write support routine for sockets
     20 
     21   @param [in] pDescriptor   Descriptor address for the file
     22   @param [in] pOffset       File offset
     23   @param [in] LengthInBytes Number of bytes to write
     24   @param [in] pBuffer       Address of the data
     25 
     26   @return   The number of bytes written or -1 if an error occurs.
     27             In the case of an error, ::errno contains more details.
     28 
     29 **/
     30 ssize_t
     31 EFIAPI
     32 BslSocketWrite (
     33   struct __filedes *pDescriptor,
     34   off_t * pOffset,
     35   size_t LengthInBytes,
     36   const void * pBuffer
     37   )
     38 {
     39   ssize_t BytesWritten;
     40 
     41   //
     42   //  Send the data using the socket
     43   //
     44   BytesWritten = send ( pDescriptor->MyFD,
     45                         pBuffer,
     46                         LengthInBytes,
     47                         0 );
     48 
     49   //
     50   //  Return the number of bytes written
     51   //
     52   return BytesWritten;
     53 }
     54