1168457Skato/*-
264123Skato * Copyright (c) 2010-2012 Semihalf.
364123Skato * All rights reserved.
464123Skato *
564123Skato * Redistribution and use in source and binary forms, with or without
664123Skato * modification, are permitted provided that the following conditions
764123Skato * are met:
864123Skato * 1. Redistributions of source code must retain the above copyright
964123Skato *    notice, this list of conditions and the following disclaimer.
1064123Skato * 2. Redistributions in binary form must reproduce the above copyright
1164123Skato *    notice, this list of conditions and the following disclaimer in the
1264123Skato *    documentation and/or other materials provided with the distribution.
1364123Skato *
1464123Skato * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1564123Skato * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1664123Skato * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1764123Skato * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1864123Skato * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1964123Skato * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2064123Skato * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2164123Skato * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2264123Skato * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2364123Skato * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2464123Skato * SUCH DAMAGE.
2564123Skato *
2664123Skato * $FreeBSD$
2764123Skato */
2864123Skato
2964123Skato#ifndef	_LIBNANDFS_NANDFS_H
3064123Skato#define	_LIBNANDFS_NANDFS_H
3164123Skato
3264123Skatostruct nandfs {
3364123Skato	struct nandfs_fsdata		n_fsdata;
3464123Skato	struct nandfs_super_block	n_sb;
35114521Skato	char				n_ioc[MNAMELEN];
36114521Skato	char				n_dev[MNAMELEN];
37168457Skato	int				n_iocfd;
38168457Skato	int				n_devfd;
39168457Skato	int				n_flags;
40168457Skato	char				n_errmsg[120];
41168457Skato};
42168457Skato
43168457Skatoint nandfs_iserror(struct nandfs *);
44114521Skatoconst char *nandfs_errmsg(struct nandfs *);
45114521Skato
46168457Skatovoid nandfs_init(struct nandfs *, const char *);
47168457Skatovoid nandfs_destroy(struct nandfs *);
48168457Skato
49168457Skatoconst char *nandfs_dev(struct nandfs *);
5064123Skato
5164123Skatoint nandfs_open(struct nandfs *);
5264123Skatovoid nandfs_close(struct nandfs *);
5364123Skato
5464123Skatoint nandfs_get_cpstat(struct nandfs *, struct nandfs_cpstat *);
5564123Skato
5664123Skatossize_t nandfs_get_cp(struct nandfs *, uint64_t,
5764123Skato    struct nandfs_cpinfo *, size_t);
5864123Skato
5964123Skatossize_t nandfs_get_snap(struct nandfs *, uint64_t,
6064123Skato    struct nandfs_cpinfo *, size_t);
6164123Skato
6264123Skatoint nandfs_make_snap(struct nandfs *, uint64_t *);
6364123Skatoint nandfs_delete_snap(struct nandfs *, uint64_t);
6464123Skato
6564123Skato#endif	/* _LIBNANDFS_NANDFS_H */
6664123Skato