From owner-p4-projects@FreeBSD.ORG Fri Dec 19 11:37:50 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 76DF5106573D; Fri, 19 Dec 2008 11:37:49 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 455381065674 for ; Fri, 19 Dec 2008 11:37:49 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 31BE68FC17 for ; Fri, 19 Dec 2008 11:37:49 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id mBJBbnLc090985 for ; Fri, 19 Dec 2008 11:37:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id mBJBbn2x090983 for perforce@freebsd.org; Fri, 19 Dec 2008 11:37:49 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Fri, 19 Dec 2008 11:37:49 GMT Message-Id: <200812191137.mBJBbn2x090983@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson To: Perforce Change Reviews Cc: Subject: PERFORCE change 154987 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Dec 2008 11:37:50 -0000 http://perforce.freebsd.org/chv.cgi?CH=154987 Change 154987 by rwatson@rwatson_cinnamon on 2008/12/19 11:37:40 Generate error tokens for test purposes. Affected files ... .. //depot/projects/trustedbsd/openbsm/test/bsm/generate.c#12 edit Differences ... ==== //depot/projects/trustedbsd/openbsm/test/bsm/generate.c#12 (text+ko) ==== @@ -24,7 +24,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/test/bsm/generate.c#11 $ + * $P4: //depot/projects/trustedbsd/openbsm/test/bsm/generate.c#12 $ */ /* @@ -966,6 +966,74 @@ write_record(directory, record_filename, socketex_token, AUE_NULL); } +/* + * Generate a series of error-number specific return tokens in records. + */ +static void +generate_error_record(const char *directory, const char *filename, int error) +{ + char pathname[PATH_MAX]; + token_t *return32_token; + + return32_token = au_to_return32(au_errno_to_bsm(error), -1); + if (return32_token == NULL) + err(EX_UNAVAILABLE, "au_to_return32"); + (void)snprintf(pathname, PATH_MAX, "%s_record", filename); + write_record(directory, pathname, return32_token, AUE_NULL); +} + +/* + * Not all the error numbers, just a few present on all platforms for now. + */ +const struct { + int error_number; + const char *error_name; +} error_list[] = { + { EPERM, "EPERM" }, + { ENOENT, "ENOENT" }, + { ESRCH, "ESRCH" }, + { EINTR, "EINTR" }, + { EIO, "EIO" }, + { ENXIO, "ENXIO" }, + { E2BIG, "E2BIG" }, + { ENOEXEC, "ENOEXEC" }, + { EBADF, "EBADF" }, + { ECHILD, "ECHILD" }, + { EDEADLK, "EDEADLK" }, + { ENOMEM, "ENOMEM" }, + { EACCES, "EACCES" }, + { EFAULT, "EFAULT" }, + { ENOTBLK, "ENOTBLK" }, + { EBUSY, "EBUSY" }, + { EEXIST, "EEXIST" }, + { EXDEV, "EXDEV" }, + { ENODEV, "ENODEV" }, + { ENOTDIR, "ENOTDIR" }, + { EISDIR, "EISDIR" }, + { EINVAL, "EINVAL" }, + { ENFILE, "ENFILE" }, + { EMFILE, "EMFILE" }, + { ENOTTY, "ENOTTY" }, + { ETXTBSY, "ETXTBSY" }, + { EFBIG, "EFBIG" }, + { ENOSPC, "ENOSPC" }, + { ESPIPE, "ESPIPE" }, + { EROFS, "EROFS" }, + { EMLINK, "EMLINK" }, + { EPIPE, "EPIPE" } +}; +const int error_list_count = sizeof(error_list)/sizeof(error_list[0]); + +static void +do_error_records(const char *directory) +{ + int i; + + for (i = 0; i < error_list_count; i++) + generate_error_record(directory, error_list[i].error_name, + error_list[i].error_number); +} + int main(int argc, char *argv[]) { @@ -1070,6 +1138,7 @@ generate_attr32_record(directory, "attr32_record"); generate_zonename_record(directory, "zonename_record"); generate_socketex_record(directory, "socketex_record"); + do_error_records(directory); } return (0);