static tiny_ret_t _dos_find_first_lfn( const char *path, unsigned attrib, lfnfind_t *lfndta ) /*******************************************************************************************/ { #ifdef _M_I86 return( __dos_find_first_lfn( path, attrib, lfndta ) ); #else call_struct dpmi_rm; strcpy( RM_TB_PARM1_LINEAR, path ); memset( &dpmi_rm, 0, sizeof( dpmi_rm ) ); dpmi_rm.ds = RM_TB_PARM1_SEGM; dpmi_rm.edx = RM_TB_PARM1_OFFS; dpmi_rm.es = RM_TB_PARM2_SEGM; dpmi_rm.edi = RM_TB_PARM2_OFFS; dpmi_rm.ecx = attrib; dpmi_rm.esi = 1; dpmi_rm.eax = 0x714E; dpmi_rm.flags = 1; if( __dpmi_dos_call( &dpmi_rm ) ) { return( -1 ); } if( dpmi_rm.flags & 1 ) { return( TINY_RET_ERROR( dpmi_rm.ax ) ); } memcpy( lfndta, RM_TB_PARM2_LINEAR, sizeof( *lfndta ) ); return( dpmi_rm.ax ); #endif }
static tiny_ret_t _dos_find_next_lfn( unsigned handle, lfnfind_t *lfndta ) /************************************************************************/ { #ifdef _M_I86 return( __dos_find_next_lfn( handle, lfndta ) ); #else call_struct dpmi_rm; memset( &dpmi_rm, 0, sizeof( dpmi_rm ) ); dpmi_rm.es = RM_TB_PARM1_SEGM; dpmi_rm.edi = RM_TB_PARM1_OFFS; dpmi_rm.ebx = handle; dpmi_rm.esi = 1; dpmi_rm.eax = 0x714F; dpmi_rm.flags = 1; if( __dpmi_dos_call( &dpmi_rm ) ) { return( -1 ); } if( dpmi_rm.flags & 1 ) { return( TINY_RET_ERROR( dpmi_rm.ax ) ); } memcpy( lfndta, RM_TB_PARM1_LINEAR, sizeof( *lfndta ) ); return( 0 ); #endif }
static tiny_ret_t _dos_find_close_lfn( unsigned handle ) /******************************************************/ { #ifdef _M_I86 return( __dos_find_close_lfn( handle ) ); #else call_struct dpmi_rm; memset( &dpmi_rm, 0, sizeof( dpmi_rm ) ); dpmi_rm.ebx = handle; dpmi_rm.eax = 0x71A1; dpmi_rm.flags = 1; if( __dpmi_dos_call( &dpmi_rm ) ) { return( -1 ); } if( dpmi_rm.flags & 1 ) { return( TINY_RET_ERROR( dpmi_rm.ax ) ); } return( 0 ); #endif }
static tiny_ret_t _rmdir_lfn( const char *path ) /**********************************************/ { #ifdef _M_I86 return( __rmdir_lfn( path ) ); #else call_struct dpmi_rm; strcpy( RM_TB_PARM1_LINEAR, path ); memset( &dpmi_rm, 0, sizeof( dpmi_rm ) ); dpmi_rm.ds = RM_TB_PARM1_SEGM; dpmi_rm.edx = RM_TB_PARM1_OFFS; dpmi_rm.eax = 0x713A; dpmi_rm.flags = 1; if( __dpmi_dos_call( &dpmi_rm ) ) { return( -1 ); } if( dpmi_rm.flags & 1 ) { return( TINY_RET_ERROR( dpmi_rm.ax ) ); } return( 0 ); #endif }
static tiny_ret_t _unlink_lfn( const char *filename ) /***************************************************/ { #ifdef _M_I86 return( __unlink_lfn( filename ) ); #else call_struct dpmi_rm; strcpy( RM_TB_PARM1_LINEAR, filename ); memset( &dpmi_rm, 0, sizeof( dpmi_rm ) ); dpmi_rm.ds = RM_TB_PARM1_SEGM; dpmi_rm.edx = RM_TB_PARM1_OFFS; dpmi_rm.esi = 0; dpmi_rm.eax = 0x7141; dpmi_rm.flags = 1; if( __dpmi_dos_call( &dpmi_rm ) ) { return( -1 ); } if( dpmi_rm.flags & 1 ) { return( TINY_RET_ERROR( dpmi_rm.ax ) ); } return( 0 ); #endif }