1ae901935SOliver Tappe/*
25ab2a9e4SAxel Dörfler** Copyright 2004, Axel D��rfler, axeld@pinc-software.de. All rights reserved.
347a21c5cSAugustin Cavalier** Distributed under the terms of the MIT License.
45ab2a9e4SAxel Dörfler*/
55ab2a9e4SAxel Dörfler
65ab2a9e4SAxel Dörfler
75ab2a9e4SAxel Dörfler#include <fs_info.h>
85ab2a9e4SAxel Dörfler
95ab2a9e4SAxel Dörfler#include <stdlib.h>
105ab2a9e4SAxel Dörfler#include <fcntl.h>
115ab2a9e4SAxel Dörfler#include <errno.h>
125ab2a9e4SAxel Dörfler
13ae901935SOliver Tappe#include <errno_private.h>
14899141baSAxel Dörfler#include <syscalls.h>
154d5c5a7eSAugustin Cavalier#include <syscall_utils.h>
165ab2a9e4SAxel Dörfler
175ab2a9e4SAxel Dörfler
185ab2a9e4SAxel Dörflerdev_t
195ab2a9e4SAxel Dörflerdev_for_path(const char *path)
205ab2a9e4SAxel Dörfler{
215ab2a9e4SAxel Dörfler	struct stat stat;
22a52018b5SAxel Dörfler	int status = _kern_read_stat(-1, path, true, &stat, sizeof(struct stat));
235ab2a9e4SAxel Dörfler	if (status == B_OK)
245ab2a9e4SAxel Dörfler		return stat.st_dev;
255ab2a9e4SAxel Dörfler
265ab2a9e4SAxel Dörfler	RETURN_AND_SET_ERRNO(status);
275ab2a9e4SAxel Dörfler}
285ab2a9e4SAxel Dörfler
295ab2a9e4SAxel Dörfler
305ab2a9e4SAxel Dörflerdev_t
31899141baSAxel Dörflernext_dev(int32 *_cookie)
325ab2a9e4SAxel Dörfler{
33899141baSAxel Dörfler	return _kern_next_device(_cookie);
34899141baSAxel Dörfler		// For some reason, this one returns its error code directly
355ab2a9e4SAxel Dörfler}
365ab2a9e4SAxel Dörfler
375ab2a9e4SAxel Dörfler
385ab2a9e4SAxel Dörflerint
39899141baSAxel Dörflerfs_stat_dev(dev_t device, fs_info *info)
405ab2a9e4SAxel Dörfler{
41899141baSAxel Dörfler	status_t status = _kern_read_fs_info(device, info);
425ab2a9e4SAxel Dörfler
43899141baSAxel Dörfler	RETURN_AND_SET_ERRNO(status);
445ab2a9e4SAxel Dörfler}
455ab2a9e4SAxel Dörfler
465ab2a9e4SAxel Dörfler
47