@----------------------------------------------------------------------------
@
@ \Source /usr/local/cvsroot/gccsdk/unixlib/source/common/_exist.s,v $
@ \Date: 2003/08/18 22:3536 $
@ \Revision 1.6 $
@ \State Exp $
@ \Author joty $
@
@----------------------------------------------------------------------------

	.include	"clib/unixlib/asm_dec.s"

.weak __feature_imagefs_is_file

	@ int __isdir_raw (const char *dir)
	@ Return nonzero if DIR is a directory.
	@ DIR is a RISC OS file specification.

	.global	__isdir_raw
	NAME	__isdir_raw
__isdir_raw:
	STMFD	sp!, {v1, v2, lr}
	MOV	a2, a1
	MOV	a1, #17
	SWI	XOS_File
	MOVVS	v1, #0		@ Error, so assume not dir
	MOVVC	v1, a1
	BL	__get_feature_imagefs_is_file
	TEQ	a1, #0
	ANDEQ	a1, v1, #2	@ feature imagefs not set, so bit 1 set for dir or image
	TEQNE	v1, #2		@ feature imagefs set, so only real directories
	MOVNE	a1, #0
	stackreturn	AL, "v1, v2, pc"

	@ int __object_exists_raw (const char *object)
	@ Return nonzero if OBJECT exists (as file, dir or image).
	@ OBJECT is a RISC OS file specification.

	.global	__object_exists_raw
	NAME	__object_exists_raw
__object_exists_raw:
	STMFD	sp!, {v1, v2, lr}
	MOV	a2, a1
	MOV	a1, #17
	SWI	XOS_File
	MOVVS	a1, #0		@ Error, so assume not there
	stackreturn	AL, "v1, v2, pc"

	@ int __get_feature_imagefs_is_file (void)
	.global	__get_feature_imagefs_is_file
	NAME	"__get_feature_imagefs_is_file"
__get_feature_imagefs_is_file:
	LDR	a1, =__feature_imagefs_is_file
	TEQ	a1, #0
	LDREQ	a1, =__feature_imagefs_is_file_internal
	LDR	a1, [a1, #0]
	return	AL, pc, lr

	@ At the moment, we don't need to manipulate the
	@ __set_feature_imagefs_is_file feature directly inside UnixLib, so
	@ following routine is commented out until we need it.

@	@ void __set_feature_imagefs_is_file(int __feature_imagefs_is_file_value)
@	.global	__set_feature_imagefs_is_file
@	NAME	"__set_feature_imagefs_is_file"
@__set_feature_imagefs_is_file:
@	LDR	a2, =__feature_imagefs_is_file
@	TEQ	a2, #0
@	LDREQ	a2, =__feature_imagefs_is_file_internal
@	STR	a1, [a2, #0]
@	return	AL, pc, lr


__feature_imagefs_is_file_internal:
	.word	0

