FreeRDP
parallel_main.c File Reference
#include <freerdp/config.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <fcntl.h>
#include <errno.h>
#include <termios.h>
#include <strings.h>
#include <sys/ioctl.h>
#include <winpr/crt.h>
#include <winpr/assert.h>
#include <winpr/synch.h>
#include <winpr/thread.h>
#include <winpr/stream.h>
#include <winpr/collections.h>
#include <winpr/interlocked.h>
#include <freerdp/types.h>
#include <freerdp/freerdp.h>
#include <freerdp/constants.h>
#include <freerdp/channels/rdpdr.h>
#include <freerdp/channels/log.h>

Macros

#define TAG   CHANNELS_TAG("drive.client")
 

Functions

static UINT parallel_process_irp_create (PARALLEL_DEVICE *parallel, IRP *irp)
 
static UINT parallel_process_irp_close (PARALLEL_DEVICE *parallel, IRP *irp)
 
static UINT parallel_process_irp_read (PARALLEL_DEVICE *parallel, IRP *irp)
 
static UINT parallel_process_irp_write (PARALLEL_DEVICE *parallel, IRP *irp)
 
static UINT parallel_process_irp_device_control (PARALLEL_DEVICE *parallel, IRP *irp)
 
static UINT parallel_process_irp (PARALLEL_DEVICE *parallel, IRP *irp)
 
static DWORD WINAPI parallel_thread_func (LPVOID arg)
 
static UINT parallel_irp_request (DEVICE *device, IRP *irp)
 
static UINT parallel_free (DEVICE *device)
 
static void parallel_message_free (void *obj)
 
 WINPR_ASSERT (pEntryPoints)
 
 WINPR_ASSERT (device)
 
 if (!name||(name[0]==' *')||!path)
 
 if (name[0] &&path[0])
 
 Stream_Free (parallel->device.data, TRUE)
 
 free (parallel)
 

Variables

char * path = NULL
 
size_t length = 0
 
RDPDR_PARALLELdevice = NULL
 
PARALLEL_DEVICE * parallel = NULL
 
UINT error = 0
 
 name = device->device.Name
 
return CHANNEL_RC_OK
 
error_out __pad0__
 

Macro Definition Documentation

◆ TAG

#define TAG   CHANNELS_TAG("drive.client")

FreeRDP: A Remote Desktop Protocol Implementation Redirected Parallel Port Device Service

Copyright 2010 O.S. Systems Software Ltda. Copyright 2010 Eduardo Fiss Beloni belon.nosp@m.i@os.nosp@m.syste.nosp@m.ms.c.nosp@m.om.br Copyright 2015 Thincast Technologies GmbH Copyright 2015 DI (FH) Martin Haimberger marti.nosp@m.n.ha.nosp@m.imber.nosp@m.ger@.nosp@m.thinc.nosp@m.ast..nosp@m.com

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

◆ free()

free ( parallel  )

◆ if() [1/2]

if ( !name||(name[0]==' *')||!  path)
Here is the caller graph for this function:

◆ if() [2/2]

if ( name &&  path[0][0])
Here is the call graph for this function:

◆ parallel_free()

static UINT parallel_free ( DEVICE *  device)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_irp_request()

static UINT parallel_irp_request ( DEVICE *  device,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_message_free()

static void parallel_message_free ( void *  obj)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_process_irp()

static UINT parallel_process_irp ( PARALLEL_DEVICE *  parallel,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_process_irp_close()

static UINT parallel_process_irp_close ( PARALLEL_DEVICE *  parallel,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_process_irp_create()

static UINT parallel_process_irp_create ( PARALLEL_DEVICE *  parallel,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_process_irp_device_control()

static UINT parallel_process_irp_device_control ( PARALLEL_DEVICE *  parallel,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_process_irp_read()

static UINT parallel_process_irp_read ( PARALLEL_DEVICE *  parallel,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_process_irp_write()

static UINT parallel_process_irp_write ( PARALLEL_DEVICE *  parallel,
IRP *  irp 
)
static

Function description

Returns
0 on success, otherwise a Win32 error code
Here is the call graph for this function:
Here is the caller graph for this function:

◆ parallel_thread_func()

static DWORD WINAPI parallel_thread_func ( LPVOID  arg)
static
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Stream_Free()

Stream_Free ( parallel->device.  data,
TRUE   
)

◆ WINPR_ASSERT() [1/2]

WINPR_ASSERT ( device  )

◆ WINPR_ASSERT() [2/2]

WINPR_ASSERT ( pEntryPoints  )
Here is the caller graph for this function:

Variable Documentation

◆ __pad0__

error_out __pad0__

◆ CHANNEL_RC_OK

return CHANNEL_RC_OK

◆ device

device = NULL

◆ error

return error = 0

◆ length

size_t length = 0

◆ name

const char * name = device->device.Name

◆ parallel

PARALLEL_DEVICE* parallel = NULL

◆ path

path = NULL

Function description

Returns
0 on success, otherwise a Win32 error code