1*33881f77Schristos /* $NetBSD: byte_mask.h,v 1.2 2020/03/18 19:05:21 christos Exp $ */ 2f3bc92a4Schristos 3f3bc92a4Schristos #ifndef _BYTE_MASK_H_INCLUDED_ 4f3bc92a4Schristos #define _BYTE_MASK_H_INCLUDED_ 5f3bc92a4Schristos 6f3bc92a4Schristos /*++ 7f3bc92a4Schristos /* NAME 8f3bc92a4Schristos /* byte_mask 3h 9f3bc92a4Schristos /* SUMMARY 10f3bc92a4Schristos /* map names to bit mask 11f3bc92a4Schristos /* SYNOPSIS 12f3bc92a4Schristos /* #include <byte_mask.h> 13f3bc92a4Schristos /* DESCRIPTION 14f3bc92a4Schristos /* .nf 15f3bc92a4Schristos 16f3bc92a4Schristos /* 17f3bc92a4Schristos * Utility library. 18f3bc92a4Schristos */ 19f3bc92a4Schristos #include <vstring.h> 20f3bc92a4Schristos 21f3bc92a4Schristos /* 22f3bc92a4Schristos * External interface. 23f3bc92a4Schristos */ 24f3bc92a4Schristos typedef struct { 25f3bc92a4Schristos int byte_val; 26f3bc92a4Schristos int mask; 27f3bc92a4Schristos } BYTE_MASK; 28f3bc92a4Schristos 29f3bc92a4Schristos #define BYTE_MASK_FATAL (1<<0) 30f3bc92a4Schristos #define BYTE_MASK_ANY_CASE (1<<1) 31f3bc92a4Schristos #define BYTE_MASK_RETURN (1<<2) 32f3bc92a4Schristos #define BYTE_MASK_WARN (1<<6) 33f3bc92a4Schristos #define BYTE_MASK_IGNORE (1<<7) 34f3bc92a4Schristos 35f3bc92a4Schristos #define BYTE_MASK_REQUIRED \ 36f3bc92a4Schristos (BYTE_MASK_FATAL | BYTE_MASK_RETURN | BYTE_MASK_WARN | BYTE_MASK_IGNORE) 37f3bc92a4Schristos #define STR_BYTE_MASK_REQUIRED (BYTE_MASK_REQUIRED) 38f3bc92a4Schristos 39f3bc92a4Schristos #define BYTE_MASK_NONE 0 40f3bc92a4Schristos #define BYTE_MASK_DEFAULT (BYTE_MASK_FATAL) 41f3bc92a4Schristos 42f3bc92a4Schristos #define byte_mask(tag, table, str) \ 43f3bc92a4Schristos byte_mask_opt((tag), (table), (str), BYTE_MASK_DEFAULT) 44f3bc92a4Schristos #define str_byte_mask(tag, table, mask) \ 45f3bc92a4Schristos str_byte_mask_opt(((VSTRING *) 0), (tag), (table), (mask), BYTE_MASK_DEFAULT) 46f3bc92a4Schristos 47f3bc92a4Schristos extern int byte_mask_opt(const char *, const BYTE_MASK *, const char *, int); 48f3bc92a4Schristos extern const char *str_byte_mask_opt(VSTRING *, const char *, const BYTE_MASK *, int, int); 49f3bc92a4Schristos 50f3bc92a4Schristos /* LICENSE 51f3bc92a4Schristos /* .ad 52f3bc92a4Schristos /* .fi 53f3bc92a4Schristos /* The Secure Mailer license must be distributed with this software. 54f3bc92a4Schristos /* AUTHOR(S) 55f3bc92a4Schristos /* Wietse Venema 56f3bc92a4Schristos /* IBM T.J. Watson Research 57f3bc92a4Schristos /* P.O. Box 704 58f3bc92a4Schristos /* Yorktown Heights, NY 10598, USA 59f3bc92a4Schristos /* 60f3bc92a4Schristos /* Wietse Venema 61f3bc92a4Schristos /* Google, Inc. 62f3bc92a4Schristos /* 111 8th Avenue 63f3bc92a4Schristos /* New York, NY 10011, USA 64f3bc92a4Schristos /*--*/ 65f3bc92a4Schristos 66f3bc92a4Schristos #endif 67