mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-08-28 13:08:06 +00:00
Add 32 bit serial arithmetic support.
This commit is contained in:
parent
686b27bfd3
commit
c4ef94b1a2
@ -22,8 +22,8 @@ top_srcdir = @top_srcdir@
|
||||
HEADERS = assertions.h base64.h boolean.h buffer.h error.h event.h \
|
||||
eventclass.h heap.h int.h interfaceiter.h lang.h lex.h lib.h \
|
||||
list.h mem.h msgcat.h netaddr.h rbtgen.h region.h result.h \
|
||||
resultclass.h rwlock.h sockaddr.h socket.h str.h symtab.h \
|
||||
task.h timer.h types.h
|
||||
resultclass.h rwlock.h serial.h sockaddr.h socket.h str.h \
|
||||
symtab.h task.h timer.h types.h
|
||||
|
||||
SUBDIRS =
|
||||
TARGETS =
|
||||
|
55
lib/isc/include/isc/serial.h
Normal file
55
lib/isc/include/isc/serial.h
Normal file
@ -0,0 +1,55 @@
|
||||
|
||||
/* $Id: serial.h,v 1.1 1999/08/30 14:44:11 marka Exp $ */
|
||||
|
||||
#ifndef isc_serial_h
|
||||
#define isc_serial_h
|
||||
|
||||
#include <isc/types.h>
|
||||
#include <isc/boolean.h>
|
||||
#include <isc/lang.h>
|
||||
|
||||
ISC_LANG_BEGINDECLS
|
||||
|
||||
/*
|
||||
* Implement 32 bit serial space arithmetic comparision functions.
|
||||
*
|
||||
* Note: Undefined results are returned as ISC_FALSE.
|
||||
*/
|
||||
|
||||
/***
|
||||
*** Functions
|
||||
***/
|
||||
|
||||
isc_boolean_t isc_serial_lt(isc_uint32_t a, isc_uint32_t b);
|
||||
/*
|
||||
* Return true if 'a' < 'b' otherwise false.
|
||||
*/
|
||||
|
||||
isc_boolean_t isc_serial_gt(isc_uint32_t a, isc_uint32_t b);
|
||||
/*
|
||||
* Return true if 'a' > 'b' otherwise false.
|
||||
*/
|
||||
|
||||
isc_boolean_t isc_serial_le(isc_uint32_t a, isc_uint32_t b);
|
||||
/*
|
||||
* Return true if 'a' <= 'b' otherwise false.
|
||||
*/
|
||||
|
||||
isc_boolean_t isc_serial_ge(isc_uint32_t a, isc_uint32_t b);
|
||||
/*
|
||||
* Return true if 'a' >= 'b' otherwise false.
|
||||
*/
|
||||
|
||||
isc_boolean_t isc_serial_eq(isc_uint32_t a, isc_uint32_t b);
|
||||
/*
|
||||
* Return true if 'a' == 'b' otherwise false.
|
||||
*/
|
||||
|
||||
isc_boolean_t isc_serial_ne(isc_uint32_t a, isc_uint32_t b);
|
||||
/*
|
||||
* Return true if 'a' != 'b' otherwise false.
|
||||
*/
|
||||
|
||||
ISC_LANG_ENDDECLS
|
||||
|
||||
#endif /* isc_serial_h */
|
39
lib/isc/serial.c
Normal file
39
lib/isc/serial.c
Normal file
@ -0,0 +1,39 @@
|
||||
|
||||
/* $Id: serial.c,v 1.1 1999/08/30 14:45:01 marka Exp $ */
|
||||
|
||||
#include <isc/serial.h>
|
||||
|
||||
isc_boolean_t
|
||||
isc_serial_lt(isc_uint32_t a, isc_uint32_t b) {
|
||||
/*
|
||||
* Undefined => ISC_FALSE
|
||||
*/
|
||||
if (a == (b ^ 0x80000000U))
|
||||
return (ISC_FALSE);
|
||||
return (((isc_int32_t)(a - b) < 0) ? ISC_TRUE : ISC_FALSE);
|
||||
}
|
||||
|
||||
isc_boolean_t
|
||||
isc_serial_gt(isc_uint32_t a, isc_uint32_t b) {
|
||||
return (((isc_int32_t)(a - b) > 0) ? ISC_TRUE : ISC_FALSE);
|
||||
}
|
||||
|
||||
isc_boolean_t
|
||||
isc_serial_le(isc_uint32_t a, isc_uint32_t b) {
|
||||
return ((a == b) ? ISC_TRUE : isc_serial_lt(a, b));
|
||||
}
|
||||
|
||||
isc_boolean_t
|
||||
isc_serial_ge(isc_uint32_t a, isc_uint32_t b) {
|
||||
return ((a == b) ? ISC_TRUE : isc_serial_gt(a, b));
|
||||
}
|
||||
|
||||
isc_boolean_t
|
||||
isc_serial_eq(isc_uint32_t a, isc_uint32_t b) {
|
||||
return ((a == b) ? ISC_TRUE : ISC_FALSE);
|
||||
}
|
||||
|
||||
isc_boolean_t
|
||||
isc_serial_ne(isc_uint32_t a, isc_uint32_t b) {
|
||||
return ((a != b) ? ISC_TRUE : ISC_FALSE);
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user