home *** CD-ROM | disk | FTP | other *** search
- /*********************************************************************/
- /* */
- /* uio_tran.c - Transfer buffer utilities for both host and UIO */
- /* */
- /* Author: John C. Fairman August 31, 1990 */
- /* Copyright 1990 by Neuralware Inc. */
- /* */
- /* $Author : $ */
- /* $Date : $ */
- /* $Source : $ */
- /* $Revision : $ */
- /* $Log : $ */
- /* */
- /*********************************************************************/
-
- #include "host.h"
-
- #if defined(SUN)
- #include <sys/types.h>
- #endif
-
- #ifdef MAC
- #include <StdDef.h>
- #endif
- #if defined(IBP) || defined(I860)
- #include <stddef.h>
- #endif
-
- #define SKIP_COMPAT_DATA 1
- #include "userutl.h"
- #include "uio_strc.h"
- #include "uio_tran.h"
- #include "uio_tran.pro"
-
- #ifdef THINK_C
- #include "macuio.redef"
- #endif
-
- /* FUNCTION */
- EXPORT UNINT get_data_size(count, data_type)
- NINT count;
- NINT data_type;
- {
- UNINT size;
-
- size = ((data_type & 0x00F0) >> 4);
- size *= count;
- return(size);
- }
-
- /* FUNCTION */
- EXPORT VOID Put_data_into_transfer_buffer(buffer, count, data_type)
- BUFFER_CHAR *buffer;
- NINT count;
- NINT data_type;
- {
- UNINT size;
-
- size = get_data_size(count, data_type);
- Data_transfer_ptr->data_descriptor.num_elements = (BUFFER_INT)count;
- Data_transfer_ptr->data_descriptor.data_type = (BUFFER_INT)data_type;
- if (size > SIZE_OF_UIO_BUFFER)
- UIO_error_value = (NINT)OUTPUT_OVERFLOW;
- else
- if (buffer != (BUFFER_CHAR *)(Data_transfer_ptr->data_area.data))
- MOVEMEM(Data_transfer_ptr->data_area.data, buffer, size);
- }
-
- /**/
- /* FUNCTION */
- EXPORT VOID Get_data_from_transfer_buffer(buffer, count, data_type)
- BUFFER_CHAR *buffer;
- NINT count;
- NINT data_type;
- {
- UNINT size;
-
- if (Data_transfer_ptr->data_descriptor.num_elements ==
- (BUFFER_INT)count)
- {
- if (Data_transfer_ptr->data_descriptor.data_type ==
- (BUFFER_INT)data_type)
- {
- size = get_data_size(count, data_type);
- if (size > SIZE_OF_UIO_BUFFER)
- UIO_error_value = (NINT)INPUT_OVERFLOW;
- else
- {
- if (buffer !=
- (BUFFER_CHAR *)(Data_transfer_ptr->data_area.data))
- {
- MOVEMEM(buffer, Data_transfer_ptr->data_area.data, size);
- }
- }
- return;
- }
- }
- UIO_error_value = (NINT)INPUT_CORRUPTION;
- }
-
- /**/
-
-
-