Cross Reference: cleanup.h
xref
: /
osnet-11
/
usr
/
src
/
lib
/
gss_mechs
/
mech_krb5
/
krb5
/
krb
/
cleanup.h
Home
History
Annotate
Line#
Navigate
Download
Search
only in
./
2
N/A
/* -*- mode: c; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
N/A
2
N/A
#
ifndef
KRB5_CLEANUP
2
N/A
#
define
KRB5_CLEANUP
2
N/A
2
N/A
struct
cleanup
{
2
N/A
void
*
arg
;
2
N/A
void
(*
func
)(
void
*);
2
N/A
};
2
N/A
2
N/A
#
define
CLEANUP_INIT
(x) \
2
N/A
struct
cleanup
cleanup_data
[x]; \
2
N/A
int
cleanup_count
= 0;
2
N/A
2
N/A
#
define
CLEANUP_PUSH
(x, y) \
2
N/A
cleanup_data
[
cleanup_count
].
arg
= x; \
2
N/A
cleanup_data
[
cleanup_count
].
func
= y; \
2
N/A
cleanup_count
++;
2
N/A
2
N/A
#
define
CLEANUP_POP
(x) \
2
N/A
if
((--
cleanup_count
) && x && (
cleanup_data
[
cleanup_count
].
func
)) \
2
N/A
cleanup_data
[
cleanup_count
].
func
(
cleanup_data
[
cleanup_count
].
arg
);
2
N/A
2
N/A
#
define
CLEANUP_DONE
() \
2
N/A
while
(
cleanup_count
--) \
2
N/A
if
(
cleanup_data
[
cleanup_count
].
func
) \
2
N/A
cleanup_data
[
cleanup_count
].
func
(
cleanup_data
[
cleanup_count
].
arg
);
2
N/A
2
N/A
2
N/A
#
endif