1*f14fb602SLionel Sambuc /*- 2*f14fb602SLionel Sambuc * Copyright (c) 2011 The NetBSD Foundation, Inc. 3*f14fb602SLionel Sambuc * All rights reserved. 4*f14fb602SLionel Sambuc * 5*f14fb602SLionel Sambuc * This code is derived from software contributed to The NetBSD Foundation 6*f14fb602SLionel Sambuc * by David A. Holland. 7*f14fb602SLionel Sambuc * 8*f14fb602SLionel Sambuc * Redistribution and use in source and binary forms, with or without 9*f14fb602SLionel Sambuc * modification, are permitted provided that the following conditions 10*f14fb602SLionel Sambuc * are met: 11*f14fb602SLionel Sambuc * 1. Redistributions of source code must retain the above copyright 12*f14fb602SLionel Sambuc * notice, this list of conditions and the following disclaimer. 13*f14fb602SLionel Sambuc * 2. Redistributions in binary form must reproduce the above copyright 14*f14fb602SLionel Sambuc * notice, this list of conditions and the following disclaimer in the 15*f14fb602SLionel Sambuc * documentation and/or other materials provided with the distribution. 16*f14fb602SLionel Sambuc * 17*f14fb602SLionel Sambuc * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 18*f14fb602SLionel Sambuc * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19*f14fb602SLionel Sambuc * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20*f14fb602SLionel Sambuc * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 21*f14fb602SLionel Sambuc * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22*f14fb602SLionel Sambuc * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23*f14fb602SLionel Sambuc * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24*f14fb602SLionel Sambuc * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25*f14fb602SLionel Sambuc * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26*f14fb602SLionel Sambuc * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27*f14fb602SLionel Sambuc * POSSIBILITY OF SUCH DAMAGE. 28*f14fb602SLionel Sambuc */ 29*f14fb602SLionel Sambuc 30*f14fb602SLionel Sambuc #ifndef _QUOTA_H_ 31*f14fb602SLionel Sambuc #define _QUOTA_H_ 32*f14fb602SLionel Sambuc 33*f14fb602SLionel Sambuc #include <sys/types.h> 34*f14fb602SLionel Sambuc #include <sys/quota.h> 35*f14fb602SLionel Sambuc 36*f14fb602SLionel Sambuc struct quotahandle; /* Opaque. */ 37*f14fb602SLionel Sambuc struct quotacursor; /* Opaque. */ 38*f14fb602SLionel Sambuc 39*f14fb602SLionel Sambuc 40*f14fb602SLionel Sambuc void quotaval_clear(struct quotaval *); 41*f14fb602SLionel Sambuc 42*f14fb602SLionel Sambuc struct quotahandle *quota_open(const char *); 43*f14fb602SLionel Sambuc void quota_close(struct quotahandle *); 44*f14fb602SLionel Sambuc 45*f14fb602SLionel Sambuc const char *quota_getmountpoint(struct quotahandle *); 46*f14fb602SLionel Sambuc const char *quota_getmountdevice(struct quotahandle *); 47*f14fb602SLionel Sambuc 48*f14fb602SLionel Sambuc const char *quota_getimplname(struct quotahandle *); 49*f14fb602SLionel Sambuc unsigned quota_getrestrictions(struct quotahandle *); 50*f14fb602SLionel Sambuc 51*f14fb602SLionel Sambuc int quota_getnumidtypes(struct quotahandle *); 52*f14fb602SLionel Sambuc const char *quota_idtype_getname(struct quotahandle *, int /*idtype*/); 53*f14fb602SLionel Sambuc 54*f14fb602SLionel Sambuc int quota_getnumobjtypes(struct quotahandle *); 55*f14fb602SLionel Sambuc const char *quota_objtype_getname(struct quotahandle *, int /*objtype*/); 56*f14fb602SLionel Sambuc int quota_objtype_isbytes(struct quotahandle *, int /*objtype*/); 57*f14fb602SLionel Sambuc 58*f14fb602SLionel Sambuc int quota_quotaon(struct quotahandle *, int /*idtype*/); 59*f14fb602SLionel Sambuc int quota_quotaoff(struct quotahandle *, int /*idtype*/); 60*f14fb602SLionel Sambuc 61*f14fb602SLionel Sambuc int quota_get(struct quotahandle *, const struct quotakey *, 62*f14fb602SLionel Sambuc struct quotaval *); 63*f14fb602SLionel Sambuc 64*f14fb602SLionel Sambuc int quota_put(struct quotahandle *, const struct quotakey *, 65*f14fb602SLionel Sambuc const struct quotaval *); 66*f14fb602SLionel Sambuc 67*f14fb602SLionel Sambuc int quota_delete(struct quotahandle *, const struct quotakey *); 68*f14fb602SLionel Sambuc 69*f14fb602SLionel Sambuc struct quotacursor *quota_opencursor(struct quotahandle *); 70*f14fb602SLionel Sambuc void quotacursor_close(struct quotacursor *); 71*f14fb602SLionel Sambuc 72*f14fb602SLionel Sambuc int quotacursor_skipidtype(struct quotacursor *, int /*idtype*/); 73*f14fb602SLionel Sambuc 74*f14fb602SLionel Sambuc int quotacursor_get(struct quotacursor *, struct quotakey *, 75*f14fb602SLionel Sambuc struct quotaval *); 76*f14fb602SLionel Sambuc 77*f14fb602SLionel Sambuc int quotacursor_getn(struct quotacursor *, struct quotakey *, 78*f14fb602SLionel Sambuc struct quotaval *, unsigned /*maxnum*/); 79*f14fb602SLionel Sambuc 80*f14fb602SLionel Sambuc int quotacursor_atend(struct quotacursor *); 81*f14fb602SLionel Sambuc int quotacursor_rewind(struct quotacursor *); 82*f14fb602SLionel Sambuc 83*f14fb602SLionel Sambuc #endif /* _QUOTA_H_ */ 84