]> git.proxmox.com Git - mirror_edk2.git/blob - StdLib/BsdSocketLib/write.c
Fix send to properly wait while long transmits are in progress
[mirror_edk2.git] / StdLib / BsdSocketLib / write.c
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 @returns The number of bytes written or -1 if an error occurs.
27
28 **/
29 ssize_t
30 BslSocketWrite (
31 struct __filedes *pDescriptor,
32 off_t * pOffset,
33 size_t LengthInBytes,
34 const void * pBuffer
35 )
36 {
37 ssize_t BytesWritten;
38
39 //
40 // Send the data using the socket
41 //
42 BytesWritten = send ( pDescriptor->MyFD,
43 pBuffer,
44 LengthInBytes,
45 0 );
46
47 //
48 // Return the number of bytes written
49 //
50 return BytesWritten;
51 }