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