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
BslSocketWrite(struct __filedes * pDescriptor,off_t * pOffset,size_t LengthInBytes,const void * pBuffer)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