mirror of
https://github.com/MariaDB/server.git
synced 2025-02-02 12:01:42 +01:00
e49dee377b
This patch was created by running the following commands: for i in */*[ch]; do doxygenify.pl $i; done perl -i -pe 's#\*{3} \*/$#****/#' */*[ch] where doxygenify.pl is https://svn.innodb.com/svn/misc/trunk/tools/doxygenify.pl r510 Verified the consistency as follows: (0) not too many /* in: */ or /* out: */ comments left in the code: grep -l '/\*\s*\(in\|out\)[,:/]' */*[ch] (1) no difference when ignoring blank lines, after stripping all C90-style /* comments */, including multi-line ones, before and after applying this patch: perl -i -e 'undef $/;while(<ARGV>){s#/\*(.*?)\*/##gs;print}' */*[ch] diff -I'^\s*$' --exclude .svn -ru TREE1 TREE2 (2) after stripping @return comments and !<, generated a diff and omitted the hunks where /* out: */ function return comments were removed: perl -i -e'undef $/;while(<ARGV>){s#!<##g;s#\n\@return\t.*?\*/# \*/#gs;print}'\ */*[ch] svn diff| perl -e 'undef $/;$_=<>;s#\n-\s*/\* out[:,]([^\n]*?)(\n-[^\n]*?)*\*/##gs;print' Some unintended changes were left. These will be removed in a subsequent patch.
142 lines
4.3 KiB
C
142 lines
4.3 KiB
C
/*****************************************************************************
|
|
|
|
Copyright (c) 1994, 2009, Innobase Oy. All Rights Reserved.
|
|
|
|
This program is free software; you can redistribute it and/or modify it under
|
|
the terms of the GNU General Public License as published by the Free Software
|
|
Foundation; version 2 of the License.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License along with
|
|
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
|
Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
*****************************************************************************/
|
|
|
|
/**********************************************************************
|
|
Random numbers and hashing
|
|
|
|
Created 1/20/1994 Heikki Tuuri
|
|
***********************************************************************/
|
|
|
|
#ifndef ut0rnd_h
|
|
#define ut0rnd_h
|
|
|
|
#include "univ.i"
|
|
|
|
#include "ut0byte.h"
|
|
|
|
/* The 'character code' for end of field or string (used
|
|
in folding records */
|
|
#define UT_END_OF_FIELD 257
|
|
|
|
/************************************************************
|
|
This is used to set the random number seed. */
|
|
UNIV_INLINE
|
|
void
|
|
ut_rnd_set_seed(
|
|
/*============*/
|
|
ulint seed); /*!< in: seed */
|
|
/************************************************************
|
|
The following function generates a series of 'random' ulint integers.
|
|
@return the next 'random' number */
|
|
UNIV_INLINE
|
|
ulint
|
|
ut_rnd_gen_next_ulint(
|
|
/*==================*/
|
|
ulint rnd); /*!< in: the previous random number value */
|
|
/*************************************************************
|
|
The following function generates 'random' ulint integers which
|
|
enumerate the value space (let there be N of them) of ulint integers
|
|
in a pseudo-random fashion. Note that the same integer is repeated
|
|
always after N calls to the generator.
|
|
@return the 'random' number */
|
|
UNIV_INLINE
|
|
ulint
|
|
ut_rnd_gen_ulint(void);
|
|
/*==================*/
|
|
/************************************************************
|
|
Generates a random integer from a given interval.
|
|
@return the 'random' number */
|
|
UNIV_INLINE
|
|
ulint
|
|
ut_rnd_interval(
|
|
/*============*/
|
|
ulint low, /*!< in: low limit; can generate also this value */
|
|
ulint high); /*!< in: high limit; can generate also this value */
|
|
/*************************************************************
|
|
Generates a random iboolean value.
|
|
@return the random value */
|
|
UNIV_INLINE
|
|
ibool
|
|
ut_rnd_gen_ibool(void);
|
|
/*=================*/
|
|
/***********************************************************
|
|
The following function generates a hash value for a ulint integer
|
|
to a hash table of size table_size, which should be a prime or some
|
|
random number to work reliably.
|
|
@return hash value */
|
|
UNIV_INLINE
|
|
ulint
|
|
ut_hash_ulint(
|
|
/*==========*/
|
|
ulint key, /*!< in: value to be hashed */
|
|
ulint table_size); /*!< in: hash table size */
|
|
/*****************************************************************
|
|
Folds a pair of ulints.
|
|
@return folded value */
|
|
UNIV_INLINE
|
|
ulint
|
|
ut_fold_ulint_pair(
|
|
/*===============*/
|
|
ulint n1, /*!< in: ulint */
|
|
ulint n2) /*!< in: ulint */
|
|
__attribute__((const));
|
|
/*****************************************************************
|
|
Folds a dulint.
|
|
@return folded value */
|
|
UNIV_INLINE
|
|
ulint
|
|
ut_fold_dulint(
|
|
/*===========*/
|
|
dulint d) /*!< in: dulint */
|
|
__attribute__((const));
|
|
/*****************************************************************
|
|
Folds a character string ending in the null character.
|
|
@return folded value */
|
|
UNIV_INLINE
|
|
ulint
|
|
ut_fold_string(
|
|
/*===========*/
|
|
const char* str) /*!< in: null-terminated string */
|
|
__attribute__((pure));
|
|
/*****************************************************************
|
|
Folds a binary string.
|
|
@return folded value */
|
|
UNIV_INLINE
|
|
ulint
|
|
ut_fold_binary(
|
|
/*===========*/
|
|
const byte* str, /*!< in: string of bytes */
|
|
ulint len) /*!< in: length */
|
|
__attribute__((pure));
|
|
/***************************************************************
|
|
Looks for a prime number slightly greater than the given argument.
|
|
The prime is chosen so that it is not near any power of 2.
|
|
@return prime */
|
|
UNIV_INTERN
|
|
ulint
|
|
ut_find_prime(
|
|
/*==========*/
|
|
ulint n) /*!< in: positive number > 100 */
|
|
__attribute__((const));
|
|
|
|
|
|
#ifndef UNIV_NONINL
|
|
#include "ut0rnd.ic"
|
|
#endif
|
|
|
|
#endif
|