/*DDK*************************************************************************/
/*                                                                           */
/* COPYRIGHT (C) Lexmark Corporation, 1989                                   */
/* COPYRIGHT    Copyright (C) 1995 IBM Corporation                           */
/*                                                                           */
/*    The following IBM OS/2 WARP source code is provided to you solely for  */
/*    the purpose of assisting you in your development of OS/2 WARP device   */
/*    drivers. You may use this code in accordance with the IBM License      */
/*    Agreement provided in the IBM Device Driver Source Kit for OS/2. This  */
/*    Copyright statement may not be removed.                                */
/*                                                                           */
/*****************************************************************************/
/**************************************************************************
 *                            Lexmark Confidential
 *
 * SOURCE FILE NAME = PRDUEXTF
 *
 * DESCRIPTIVE NAME = Printer Device Driver external files for
 *                    string routines
 *
 *
 * VERSION
 *
 * DATE
 *
 * DESCRIPTION
 *
 * FUNCTIONS
 *
 * ENTRY POINTS:
 *
 * DEPENDENCIES:
 *
 * NOTES
 *
 *
 * STRUCTURES
 *
 * EXTERNAL REFERENCES
 *
 * EXTERNAL FUNCTIONS
 *
*/
#if 0
BOOL pascal far prdu_stroccur ( BYTE, PBYTE );

SHORT pascal far prdu_strcmpN( PBYTE, PBYTE, USHORT );

VOID  pascal far prdu_strcpyN( PBYTE, PBYTE, USHORT );

SHORT pascal far prdu_strcmp( PBYTE, PBYTE );

VOID pascal far prdu_strupr( PBYTE );

VOID  pascal far prdu_strcpy( PBYTE, PBYTE );

VOID  pascal far prdu_strcat( PBYTE, PBYTE );

USHORT pascal far prdu_strlen( PBYTE );

SHORT pascal far prdu_memcmp( PBYTE, PBYTE, USHORT );
VOID  pascal far prdu_memcpy( PBYTE, PBYTE, USHORT );

VOID  pascal far prdu_memset( PBYTE, BYTE, USHORT );

ULONG pascal far prdu_abs( ULONG );

USHORT pascal far prdu_tan( USHORT );
#endif

BOOL   prdu_stroccur ( BYTE, PBYTE );                      /* CON3201 */

SHORT  prdu_strcmpN( PBYTE, PBYTE, USHORT );               /* CON3201 */

VOID   prdu_strcpyN( PBYTE, PBYTE, USHORT );               /* CON3201 */

SHORT  prdu_strcmp( PBYTE, PBYTE );                        /* CON3201 */

VOID   prdu_strupr( PBYTE );                               /* CON3201 */

VOID   prdu_strcpy( PBYTE, PBYTE );                        /* CON3201 */

VOID   prdu_strcat( PBYTE, PBYTE );                        /* CON3201 */

USHORT prdu_strlen( PBYTE );                               /* CON3201 */

LONG   prdu_memcmp( PBYTE, PBYTE, ULONG );                 /* CON3201 */
VOID   prdu_memcpy( PBYTE, PBYTE, ULONG );                 /* CON3201 */

VOID   prdu_memset( PBYTE, BYTE, ULONG );                  /* CON3201 */

ULONG  prdu_abs( ULONG );                                  /* CON3201 */

USHORT prdu_tan( USHORT );                                 /* CON3201 */

ULONG  prdu_lrotl( ULONG, USHORT );                        /* CON3201 */

/**********************************************************************/
/* PD00406 : New assembler routine.                                   */
/**********************************************************************/
#if 0
VOID FAR prdu_dwordset ( PBYTE, PBYTE, USHORT );
#endif
VOID prdu_dwordset ( PBYTE, PBYTE, USHORT );               /* CON3201 */

/**********************************************************************/
/* New for PD00474. The PBYTE parameter is really of type pPatStruct  */
/**********************************************************************/
#if 0
USHORT pascal prdu_GetPatternInfo(
              lpDCI);
#endif
USHORT prdu_GetPatternInfo( lpDCI );                       /* CON3201 */

/**********************************************************************/
/* New for PD00474. The PBYTE parameter is really of type pPatStruct  */
/**********************************************************************/
#if 0
USHORT pascal prdu_GetDriverPattern(
              PBYTE,
              lpDCI);
#endif
USHORT prdu_GetDriverPattern(                              /* CON3201 */
       PBYTE,
       lpDCI);

/**********************************************************************/
/* New for PD00474. The PBYTE parameter is really of type pPatStruct  */
/**********************************************************************/
#if 0
USHORT pascal prdu_GetBitmapPattern(
              PBYTE,
              lpDCI);
#endif
USHORT prdu_GetBitmapPattern(                              /* CON3201 */
       PBYTE,
       lpDCI);

/**********************************************************************/
/* New for PD00474. The PBYTE parameter is really of type pPatStruct  */
/**********************************************************************/
#if 0
USHORT pascal prdu_ExpandPattern(
              PBYTE,
              lpDCI);
#endif
USHORT prdu_ExpandPattern(                                 /* CON3201 */
       PBYTE,
       lpDCI);

/******************************************************************************/
/* New for PD00474.                                                           */
/*  600DPI : Add a parameter for resolution to be passed into this routine.   */
/******************************************************************************/
#if 0
USHORT pascal prdu_GetGreyScaleIndex (                     /* CON3201 */
              ULONG,
              USHORT);
#endif
USHORT prdu_GetGreyScaleIndex (
       ULONG,
       USHORT);

/**********************************************************************/
/* New for PD00474.                                                   */
/**********************************************************************/
#if 0
USHORT pascal prdu_AllocPatternMemory(
              lpDCI );
#endif
USHORT prdu_AllocPatternMemory( lpDCI );                   /* CON3201 */

/**********************************************************************/
/* New for PD00474.                                                   */
/**********************************************************************/
#if 0
USHORT pascal prdu_FreePatternMemory(
              lpDCI );
#endif
USHORT prdu_FreePatternMemory( lpDCI );                    /* CON3201 */

/**********************************************************************/
/* New for PD00474. Assembler function in BITMOUT.ASM                 */
/**********************************************************************/
void prdu_bitcopy (
              PBYTE,
              PBYTE,
              USHORT,
              USHORT,
              USHORT);

/**********************************************************************/
/* New for PD00474. Assembler function in BITMOUT.ASM                 */
/**********************************************************************/
void prdu_writerow (
              PULONG,
              ULONG,
              ULONG,
              ULONG,
              ULONG,
              USHORT,
              USHORT);


/**********************************************************************/
/* See prdutils.c for details                                         */
/**********************************************************************/
ULONG SafeSSALLOCMEM(PVOID,
                     ULONG,
                     ULONG);
