imaxabs.c revision 2
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx/*
0dc2366f7b9f9f36e10909b1e95edbf2a261c2acVenugopal Iyer * CDDL HEADER START
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx *
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * The contents of this file are subject to the terms of the
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * Common Development and Distribution License (the "License").
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * You may not use this file except in compliance with the License.
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx *
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * or http://www.opensolaris.org/os/licensing.
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * See the License for the specific language governing permissions
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * and limitations under the License.
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx *
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * When distributing Covered Code, include this CDDL HEADER in each
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * If applicable, add the following below this CDDL HEADER, with the
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * fields enclosed by brackets "[]" replaced with your own identifying
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * information: Portions Copyright [yyyy] [name of copyright owner]
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx *
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * CDDL HEADER END
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx */
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx/*
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * Copyright 2008 Sun Microsystems, Inc. All rights reserved.
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * Use is subject to license terms.
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx */
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx#pragma ident "%Z%%M% %I% %E% SMI"
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx#include "lint.h"
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx#include <sys/types.h>
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx#include <stdlib.h>
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx/*
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * Added for SUSv3 standard
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx */
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hxintmax_t
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hximaxabs(intmax_t arg)
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx{
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx return ((intmax_t)llabs((long long)arg));
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx}
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx#if !defined(_LP64)
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx
da14cebe459d3275048785f25bd869cb09b5307fEric Cheng/*
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * 32-bit shadow function of imaxabs.
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * When using the c89 compiler the largest int is 32-bits hence
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * this function. The pragma redefine_extname in inttypes.h selects
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * the proper routine at compile time for the user application.
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx * NOTE: this function is only available in the 32-bit library.
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx */
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hxint32_t
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx_imaxabs_c89(int32_t arg)
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx{
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx return (abs(arg));
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx}
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx#endif
84f7a9b9dca4f23b5f50edef0e59d7eb44301114hx