Lines Matching defs:bip

894 bip_buffer_close( BipBuffer  bip )
896 bip->closed = 1;
898 if (!bip->can_read) {
899 SetEvent( bip->evt_read );
901 if (!bip->can_write) {
902 SetEvent( bip->evt_write );
907 bip_buffer_done( BipBuffer bip )
909 BIPD(( "bip_buffer_done: %d->%d\n", bip->fdin, bip->fdout ));
910 CloseHandle( bip->evt_read );
911 CloseHandle( bip->evt_write );
912 DeleteCriticalSection( &bip->lock );
916 bip_buffer_write( BipBuffer bip, const void* src, int len )
923 BIPD(( "bip_buffer_write: enter %d->%d len %d\n", bip->fdin, bip->fdout, len ));
926 EnterCriticalSection( &bip->lock );
928 while (!bip->can_write) {
930 LeaveCriticalSection( &bip->lock );
932 if (bip->closed) {
937 ret = WaitForSingleObject( bip->evt_write, INFINITE );
939 D( "bip_buffer_write: error %d->%d WaitForSingleObject returned %d, error %ld\n", bip->fdin, bip->fdout, ret, GetLastError() );
942 if (bip->closed) {
946 EnterCriticalSection( &bip->lock );
949 BIPD(( "bip_buffer_write: exec %d->%d len %d\n", bip->fdin, bip->fdout, len ));
951 avail = BIP_BUFFER_SIZE - bip->a_end;
958 memcpy( bip->buff + bip->a_end, src, avail );
963 bip->a_end += avail;
964 if (bip->a_end == BIP_BUFFER_SIZE && bip->a_start == 0) {
965 bip->can_write = 0;
966 ResetEvent( bip->evt_write );
974 avail = bip->a_start - bip->b_end;
980 memcpy( bip->buff + bip->b_end, src, avail );
982 bip->b_end += avail;
984 if (bip->b_end == bip->a_start) {
985 bip->can_write = 0;
986 ResetEvent( bip->evt_write );
992 if ( !bip->can_read ) {
993 bip->can_read = 1;
994 SetEvent( bip->evt_read );
998 bip->fdin, bip->fdout, count, bip->a_start, bip->a_end, bip->b_end, bip->can_write, bip->can_read ));
999 LeaveCriticalSection( &bip->lock );
1005 bip_buffer_read( BipBuffer bip, void* dst, int len )
1012 BIPD(( "bip_buffer_read: enter %d->%d len %d\n", bip->fdin, bip->fdout, len ));
1014 EnterCriticalSection( &bip->lock );
1015 while ( !bip->can_read )
1018 LeaveCriticalSection( &bip->lock );
1023 LeaveCriticalSection( &bip->lock );
1025 if (bip->closed) {
1030 ret = WaitForSingleObject( bip->evt_read, INFINITE );
1032 D( "bip_buffer_read: error %d->%d WaitForSingleObject returned %d, error %ld\n", bip->fdin, bip->fdout, ret, GetLastError());
1035 if (bip->closed) {
1039 EnterCriticalSection( &bip->lock );
1043 BIPD(( "bip_buffer_read: exec %d->%d len %d\n", bip->fdin, bip->fdout, len ));
1045 avail = bip->a_end - bip->a_start;
1051 memcpy( dst, bip->buff + bip->a_start, avail );
1056 bip->a_start += avail;
1057 if (bip->a_start < bip->a_end)
1060 bip->a_start = 0;
1061 bip->a_end = bip->b_end;
1062 bip->b_end = 0;
1064 avail = bip->a_end;
1068 memcpy( dst, bip->buff, avail );
1070 bip->a_start += avail;
1072 if ( bip->a_start < bip->a_end )
1075 bip->a_start = bip->a_end = 0;
1078 bip->can_read = 0;
1079 ResetEvent( bip->evt_read );
1084 if (!bip->can_write ) {
1085 bip->can_write = 1;
1086 SetEvent( bip->evt_write );
1091 bip->fdin, bip->fdout, count, bip->a_start, bip->a_end, bip->b_end, bip->can_write, bip->can_read ));
1092 LeaveCriticalSection( &bip->lock );
1145 BipBuffer bip;
1151 bip = &pair->b2a_bip;
1153 bip = &pair->a2b_bip;
1155 return bip_buffer_read( bip, buf, len );
1162 BipBuffer bip;
1168 bip = &pair->a2b_bip;
1170 bip = &pair->b2a_bip;
1172 return bip_buffer_write( bip, buf, len );