/*
 * Copyright (c) 2008-2009 Atheros Communications Inc.
 *
 * Permission to use, copy, modify, and/or distribute this software for any
 * purpose with or without fee is hereby granted, provided that the above
 * copyright notice and this permission notice appear in all copies.
 *
 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 */

#ifndef REGD_COMMON_H
#define REGD_COMMON_H

enum EnumRd {
    NO_ENUMRD = 0x00,
    NULL1_WORLD = 0x03,
    NULL1_ETSIB = 0x07,
    NULL1_ETSIC = 0x08,
    FCC1_FCCA = 0x10,
    FCC1_WORLD = 0x11,
    FCC4_FCCA = 0x12,
    FCC5_FCCA = 0x13,
    FCC6_FCCA = 0x14,

    FCC2_FCCA = 0x20,
    FCC2_WORLD = 0x21,
    FCC2_ETSIC = 0x22,
    FCC6_WORLD = 0x23,
    FRANCE_RES = 0x31,
    FCC3_FCCA = 0x3A,
    FCC3_WORLD = 0x3B,

    ETSI1_WORLD = 0x37,
    ETSI3_ETSIA = 0x32,
    ETSI2_WORLD = 0x35,
    ETSI3_WORLD = 0x36,
    ETSI4_WORLD = 0x30,
    ETSI4_ETSIC = 0x38,
    ETSI5_WORLD = 0x39,
    ETSI6_WORLD = 0x34,
    ETSI_RESERVED = 0x33,

    MKK1_MKKA = 0x40,
    MKK1_MKKB = 0x41,
    APL4_WORLD = 0x42,
    MKK2_MKKA = 0x43,
    APL_RESERVED = 0x44,
    APL2_WORLD = 0x45,
    APL2_APLC = 0x46,
    APL3_WORLD = 0x47,
    MKK1_FCCA = 0x48,
    APL2_APLD = 0x49,
    MKK1_MKKA1 = 0x4A,
    MKK1_MKKA2 = 0x4B,
    MKK1_MKKC = 0x4C,

    APL3_FCCA = 0x50,
    APL1_WORLD = 0x52,
    APL1_FCCA = 0x53,
    APL1_APLA = 0x54,
    APL1_ETSIC = 0x55,
    APL2_ETSIC = 0x56,
    APL5_WORLD = 0x58,
    APL6_WORLD = 0x5B,
    APL7_FCCA = 0x5C,
    APL8_WORLD = 0x5D,
    APL9_WORLD = 0x5E,

    WOR0_WORLD = 0x60,
    WOR1_WORLD = 0x61,
    WOR2_WORLD = 0x62,
    WOR3_WORLD = 0x63,
    WOR4_WORLD = 0x64,
    WOR5_ETSIC = 0x65,

    WOR01_WORLD = 0x66,
    WOR02_WORLD = 0x67,
    EU1_WORLD = 0x68,

    WOR9_WORLD = 0x69,
    WORA_WORLD = 0x6A,
    WORB_WORLD = 0x6B,
    WORC_WORLD = 0x6C,

    MKK3_MKKB = 0x80,
    MKK3_MKKA2 = 0x81,
    MKK3_MKKC = 0x82,

    MKK4_MKKB = 0x83,
    MKK4_MKKA2 = 0x84,
    MKK4_MKKC = 0x85,

    MKK5_MKKB = 0x86,
    MKK5_MKKA2 = 0x87,
    MKK5_MKKC = 0x88,

    MKK6_MKKB = 0x89,
    MKK6_MKKA2 = 0x8A,
    MKK6_MKKC = 0x8B,

    MKK7_MKKB = 0x8C,
    MKK7_MKKA2 = 0x8D,
    MKK7_MKKC = 0x8E,

    MKK8_MKKB = 0x8F,
    MKK8_MKKA2 = 0x90,
    MKK8_MKKC = 0x91,

    MKK14_MKKA1 = 0x92,
    MKK15_MKKA1 = 0x93,

    MKK10_FCCA = 0xD0,
    MKK10_MKKA1 = 0xD1,
    MKK10_MKKC = 0xD2,
    MKK10_MKKA2 = 0xD3,

    MKK11_MKKA = 0xD4,
    MKK11_FCCA = 0xD5,
    MKK11_MKKA1 = 0xD6,
    MKK11_MKKC = 0xD7,
    MKK11_MKKA2 = 0xD8,

    MKK12_MKKA = 0xD9,
    MKK12_FCCA = 0xDA,
    MKK12_MKKA1 = 0xDB,
    MKK12_MKKC = 0xDC,
    MKK12_MKKA2 = 0xDD,

    MKK13_MKKB = 0xDE,

    MKK3_MKKA = 0xF0,
    MKK3_MKKA1 = 0xF1,
    MKK3_FCCA = 0xF2,
    MKK4_MKKA = 0xF3,
    MKK4_MKKA1 = 0xF4,
    MKK4_FCCA = 0xF5,
    MKK9_MKKA = 0xF6,
    MKK10_MKKA = 0xF7,
    MKK6_MKKA1 = 0xF8,
    MKK6_FCCA = 0xF9,
    MKK7_MKKA1 = 0xFA,
    MKK7_FCCA = 0xFB,
    MKK9_FCCA = 0xFC,
    MKK9_MKKA1 = 0xFD,
    MKK9_MKKC = 0xFE,
    MKK9_MKKA2 = 0xFF,

    WORLD = 0x0199,
    DEBUG_REG_DMN = 0x01ff,
};

/* Regpair to CTL band mapping */
static struct reg_dmn_pair_mapping regDomainPairs[] = {
    // clang-format off
    /* regpair, 5 GHz CTL, 2 GHz CTL */
    {NO_ENUMRD, DEBUG_REG_DMN, DEBUG_REG_DMN},
    {NULL1_WORLD, NO_CTL, CTL_ETSI},
    {NULL1_ETSIB, NO_CTL, CTL_ETSI},
    {NULL1_ETSIC, NO_CTL, CTL_ETSI},

    {FCC2_FCCA, CTL_FCC, CTL_FCC},
    {FCC2_WORLD, CTL_FCC, CTL_ETSI},
    {FCC2_ETSIC, CTL_FCC, CTL_ETSI},
    {FCC3_FCCA, CTL_FCC, CTL_FCC},
    {FCC3_WORLD, CTL_FCC, CTL_ETSI},
    {FCC4_FCCA, CTL_FCC, CTL_FCC},
    {FCC5_FCCA, CTL_FCC, CTL_FCC},
    {FCC6_FCCA, CTL_FCC, CTL_FCC},
    {FCC6_WORLD, CTL_FCC, CTL_ETSI},

    {ETSI1_WORLD, CTL_ETSI, CTL_ETSI},
    {ETSI2_WORLD, CTL_ETSI, CTL_ETSI},
    {ETSI3_WORLD, CTL_ETSI, CTL_ETSI},
    {ETSI4_WORLD, CTL_ETSI, CTL_ETSI},
    {ETSI5_WORLD, CTL_ETSI, CTL_ETSI},
    {ETSI6_WORLD, CTL_ETSI, CTL_ETSI},

    /* XXX: For ETSI3_ETSIA, Was NO_CTL meant for the 2 GHz band ? */
    {ETSI3_ETSIA, CTL_ETSI, CTL_ETSI},
    {FRANCE_RES, CTL_ETSI, CTL_ETSI},

    {FCC1_WORLD, CTL_FCC, CTL_ETSI},
    {FCC1_FCCA, CTL_FCC, CTL_FCC},
    {APL1_WORLD, CTL_FCC, CTL_ETSI},
    {APL2_WORLD, CTL_FCC, CTL_ETSI},
    {APL3_WORLD, CTL_FCC, CTL_ETSI},
    {APL4_WORLD, CTL_FCC, CTL_ETSI},
    {APL5_WORLD, CTL_FCC, CTL_ETSI},
    {APL6_WORLD, CTL_ETSI, CTL_ETSI},
    {APL8_WORLD, CTL_ETSI, CTL_ETSI},
    {APL9_WORLD, CTL_ETSI, CTL_ETSI},

    {APL3_FCCA, CTL_FCC, CTL_FCC},
    {APL7_FCCA, CTL_FCC, CTL_FCC},
    {APL1_ETSIC, CTL_FCC, CTL_ETSI},
    {APL2_ETSIC, CTL_FCC, CTL_ETSI},
    {APL2_APLD, CTL_FCC, NO_CTL},

    {MKK1_MKKA, CTL_MKK, CTL_MKK},
    {MKK1_MKKB, CTL_MKK, CTL_MKK},
    {MKK1_FCCA, CTL_MKK, CTL_FCC},
    {MKK1_MKKA1, CTL_MKK, CTL_MKK},
    {MKK1_MKKA2, CTL_MKK, CTL_MKK},
    {MKK1_MKKC, CTL_MKK, CTL_MKK},

    {MKK2_MKKA, CTL_MKK, CTL_MKK},
    {MKK3_MKKA, CTL_MKK, CTL_MKK},
    {MKK3_MKKB, CTL_MKK, CTL_MKK},
    {MKK3_MKKA1, CTL_MKK, CTL_MKK},
    {MKK3_MKKA2, CTL_MKK, CTL_MKK},
    {MKK3_MKKC, CTL_MKK, CTL_MKK},
    {MKK3_FCCA, CTL_MKK, CTL_FCC},

    {MKK4_MKKA, CTL_MKK, CTL_MKK},
    {MKK4_MKKB, CTL_MKK, CTL_MKK},
    {MKK4_MKKA1, CTL_MKK, CTL_MKK},
    {MKK4_MKKA2, CTL_MKK, CTL_MKK},
    {MKK4_MKKC, CTL_MKK, CTL_MKK},
    {MKK4_FCCA, CTL_MKK, CTL_FCC},

    {MKK5_MKKB, CTL_MKK, CTL_MKK},
    {MKK5_MKKA2, CTL_MKK, CTL_MKK},
    {MKK5_MKKC, CTL_MKK, CTL_MKK},

    {MKK6_MKKB, CTL_MKK, CTL_MKK},
    {MKK6_MKKA1, CTL_MKK, CTL_MKK},
    {MKK6_MKKA2, CTL_MKK, CTL_MKK},
    {MKK6_MKKC, CTL_MKK, CTL_MKK},
    {MKK6_FCCA, CTL_MKK, CTL_FCC},

    {MKK7_MKKB, CTL_MKK, CTL_MKK},
    {MKK7_MKKA1, CTL_MKK, CTL_MKK},
    {MKK7_MKKA2, CTL_MKK, CTL_MKK},
    {MKK7_MKKC, CTL_MKK, CTL_MKK},
    {MKK7_FCCA, CTL_MKK, CTL_FCC},

    {MKK8_MKKB, CTL_MKK, CTL_MKK},
    {MKK8_MKKA2, CTL_MKK, CTL_MKK},
    {MKK8_MKKC, CTL_MKK, CTL_MKK},

    {MKK9_MKKA, CTL_MKK, CTL_MKK},
    {MKK9_FCCA, CTL_MKK, CTL_FCC},
    {MKK9_MKKA1, CTL_MKK, CTL_MKK},
    {MKK9_MKKA2, CTL_MKK, CTL_MKK},
    {MKK9_MKKC, CTL_MKK, CTL_MKK},

    {MKK10_MKKA, CTL_MKK, CTL_MKK},
    {MKK10_FCCA, CTL_MKK, CTL_FCC},
    {MKK10_MKKA1, CTL_MKK, CTL_MKK},
    {MKK10_MKKA2, CTL_MKK, CTL_MKK},
    {MKK10_MKKC, CTL_MKK, CTL_MKK},

    {MKK11_MKKA, CTL_MKK, CTL_MKK},
    {MKK11_FCCA, CTL_MKK, CTL_FCC},
    {MKK11_MKKA1, CTL_MKK, CTL_MKK},
    {MKK11_MKKA2, CTL_MKK, CTL_MKK},
    {MKK11_MKKC, CTL_MKK, CTL_MKK},

    {MKK12_MKKA, CTL_MKK, CTL_MKK},
    {MKK12_FCCA, CTL_MKK, CTL_FCC},
    {MKK12_MKKA1, CTL_MKK, CTL_MKK},
    {MKK12_MKKA2, CTL_MKK, CTL_MKK},
    {MKK12_MKKC, CTL_MKK, CTL_MKK},

    {MKK13_MKKB, CTL_MKK, CTL_MKK},
    {MKK14_MKKA1, CTL_MKK, CTL_MKK},
    {MKK15_MKKA1, CTL_MKK, CTL_MKK},

    {WOR0_WORLD, NO_CTL, NO_CTL},
    {WOR1_WORLD, NO_CTL, NO_CTL},
    {WOR2_WORLD, NO_CTL, NO_CTL},
    {WOR3_WORLD, NO_CTL, NO_CTL},
    {WOR4_WORLD, NO_CTL, NO_CTL},
    {WOR5_ETSIC, NO_CTL, NO_CTL},
    {WOR01_WORLD, NO_CTL, NO_CTL},
    {WOR02_WORLD, NO_CTL, NO_CTL},
    {EU1_WORLD, NO_CTL, NO_CTL},
    {WOR9_WORLD, NO_CTL, NO_CTL},
    {WORA_WORLD, NO_CTL, NO_CTL},
    {WORB_WORLD, NO_CTL, NO_CTL},
    {WORC_WORLD, NO_CTL, NO_CTL},
    // clang-format on
};

static struct country_code_to_enum_rd allCountries[] = {
    // clang-format off
    {CTRY_DEBUG, NO_ENUMRD, "DB"},
    {CTRY_DEFAULT, FCC1_FCCA, "CO"},
    {CTRY_ALBANIA, NULL1_WORLD, "AL"},
    {CTRY_ALGERIA, NULL1_WORLD, "DZ"},
    {CTRY_ARGENTINA, FCC3_WORLD, "AR"},
    {CTRY_ARMENIA, ETSI4_WORLD, "AM"},
    {CTRY_ARUBA, ETSI1_WORLD, "AW"},
    {CTRY_AUSTRALIA, FCC2_WORLD, "AU"},
    {CTRY_AUSTRALIA2, FCC6_WORLD, "AU"},
    {CTRY_AUSTRIA, ETSI1_WORLD, "AT"},
    {CTRY_AZERBAIJAN, ETSI4_WORLD, "AZ"},
    {CTRY_BAHRAIN, APL6_WORLD, "BH"},
    {CTRY_BANGLADESH, NULL1_WORLD, "BD"},
    {CTRY_BARBADOS, FCC2_WORLD, "BB"},
    {CTRY_BELARUS, ETSI1_WORLD, "BY"},
    {CTRY_BELGIUM, ETSI1_WORLD, "BE"},
    {CTRY_BELGIUM2, ETSI4_WORLD, "BL"},
    {CTRY_BELIZE, APL1_ETSIC, "BZ"},
    {CTRY_BOLIVIA, APL1_ETSIC, "BO"},
    {CTRY_BOSNIA_HERZ, ETSI1_WORLD, "BA"},
    {CTRY_BRAZIL, FCC3_WORLD, "BR"},
    {CTRY_BRUNEI_DARUSSALAM, APL1_WORLD, "BN"},
    {CTRY_BULGARIA, ETSI6_WORLD, "BG"},
    {CTRY_CAMBODIA, ETSI1_WORLD, "KH"},
    {CTRY_CANADA, FCC3_FCCA, "CA"},
    {CTRY_CANADA2, FCC6_FCCA, "CA"},
    {CTRY_CHILE, APL6_WORLD, "CL"},
    {CTRY_CHINA, APL1_WORLD, "CN"},
    {CTRY_COLOMBIA, FCC1_FCCA, "CO"},
    {CTRY_COSTA_RICA, FCC1_WORLD, "CR"},
    {CTRY_CROATIA, ETSI1_WORLD, "HR"},
    {CTRY_CYPRUS, ETSI1_WORLD, "CY"},
    {CTRY_CZECH, ETSI3_WORLD, "CZ"},
    {CTRY_DENMARK, ETSI1_WORLD, "DK"},
    {CTRY_DOMINICAN_REPUBLIC, FCC1_FCCA, "DO"},
    {CTRY_ECUADOR, FCC1_WORLD, "EC"},
    {CTRY_EGYPT, ETSI3_WORLD, "EG"},
    {CTRY_EL_SALVADOR, FCC1_WORLD, "SV"},
    {CTRY_ESTONIA, ETSI1_WORLD, "EE"},
    {CTRY_FINLAND, ETSI1_WORLD, "FI"},
    {CTRY_FRANCE, ETSI1_WORLD, "FR"},
    {CTRY_GEORGIA, ETSI4_WORLD, "GE"},
    {CTRY_GERMANY, ETSI1_WORLD, "DE"},
    {CTRY_GREECE, ETSI1_WORLD, "GR"},
    {CTRY_GREENLAND, ETSI1_WORLD, "GL"},
    {CTRY_GRENADA, FCC3_FCCA, "GD"},
    {CTRY_GUAM, FCC1_FCCA, "GU"},
    {CTRY_GUATEMALA, FCC1_FCCA, "GT"},
    {CTRY_HAITI, ETSI1_WORLD, "HT"},
    {CTRY_HONDURAS, NULL1_WORLD, "HN"},
    {CTRY_HONG_KONG, FCC3_WORLD, "HK"},
    {CTRY_HUNGARY, ETSI1_WORLD, "HU"},
    {CTRY_ICELAND, ETSI1_WORLD, "IS"},
    {CTRY_INDIA, APL6_WORLD, "IN"},
    {CTRY_INDONESIA, NULL1_WORLD, "ID"},
    {CTRY_IRAN, APL1_WORLD, "IR"},
    {CTRY_IRELAND, ETSI1_WORLD, "IE"},
    {CTRY_ISRAEL, NULL1_WORLD, "IL"},
    {CTRY_ITALY, ETSI1_WORLD, "IT"},
    {CTRY_JAMAICA, FCC3_WORLD, "JM"},

    {CTRY_JAPAN, MKK1_MKKA, "JP"},
    {CTRY_JAPAN1, MKK1_MKKB, "JP"},
    {CTRY_JAPAN2, MKK1_FCCA, "JP"},
    {CTRY_JAPAN3, MKK2_MKKA, "JP"},
    {CTRY_JAPAN4, MKK1_MKKA1, "JP"},
    {CTRY_JAPAN5, MKK1_MKKA2, "JP"},
    {CTRY_JAPAN6, MKK1_MKKC, "JP"},
    {CTRY_JAPAN7, MKK3_MKKB, "JP"},
    {CTRY_JAPAN8, MKK3_MKKA2, "JP"},
    {CTRY_JAPAN9, MKK3_MKKC, "JP"},
    {CTRY_JAPAN10, MKK4_MKKB, "JP"},
    {CTRY_JAPAN11, MKK4_MKKA2, "JP"},
    {CTRY_JAPAN12, MKK4_MKKC, "JP"},
    {CTRY_JAPAN13, MKK5_MKKB, "JP"},
    {CTRY_JAPAN14, MKK5_MKKA2, "JP"},
    {CTRY_JAPAN15, MKK5_MKKC, "JP"},
    {CTRY_JAPAN16, MKK6_MKKB, "JP"},
    {CTRY_JAPAN17, MKK6_MKKA2, "JP"},
    {CTRY_JAPAN18, MKK6_MKKC, "JP"},
    {CTRY_JAPAN19, MKK7_MKKB, "JP"},
    {CTRY_JAPAN20, MKK7_MKKA2, "JP"},
    {CTRY_JAPAN21, MKK7_MKKC, "JP"},
    {CTRY_JAPAN22, MKK8_MKKB, "JP"},
    {CTRY_JAPAN23, MKK8_MKKA2, "JP"},
    {CTRY_JAPAN24, MKK8_MKKC, "JP"},
    {CTRY_JAPAN25, MKK3_MKKA, "JP"},
    {CTRY_JAPAN26, MKK3_MKKA1, "JP"},
    {CTRY_JAPAN27, MKK3_FCCA, "JP"},
    {CTRY_JAPAN28, MKK4_MKKA1, "JP"},
    {CTRY_JAPAN29, MKK4_FCCA, "JP"},
    {CTRY_JAPAN30, MKK6_MKKA1, "JP"},
    {CTRY_JAPAN31, MKK6_FCCA, "JP"},
    {CTRY_JAPAN32, MKK7_MKKA1, "JP"},
    {CTRY_JAPAN33, MKK7_FCCA, "JP"},
    {CTRY_JAPAN34, MKK9_MKKA, "JP"},
    {CTRY_JAPAN35, MKK10_MKKA, "JP"},
    {CTRY_JAPAN36, MKK4_MKKA, "JP"},
    {CTRY_JAPAN37, MKK9_FCCA, "JP"},
    {CTRY_JAPAN38, MKK9_MKKA1, "JP"},
    {CTRY_JAPAN39, MKK9_MKKC, "JP"},
    {CTRY_JAPAN40, MKK9_MKKA2, "JP"},
    {CTRY_JAPAN41, MKK10_FCCA, "JP"},
    {CTRY_JAPAN42, MKK10_MKKA1, "JP"},
    {CTRY_JAPAN43, MKK10_MKKC, "JP"},
    {CTRY_JAPAN44, MKK10_MKKA2, "JP"},
    {CTRY_JAPAN45, MKK11_MKKA, "JP"},
    {CTRY_JAPAN46, MKK11_FCCA, "JP"},
    {CTRY_JAPAN47, MKK11_MKKA1, "JP"},
    {CTRY_JAPAN48, MKK11_MKKC, "JP"},
    {CTRY_JAPAN49, MKK11_MKKA2, "JP"},
    {CTRY_JAPAN50, MKK12_MKKA, "JP"},
    {CTRY_JAPAN51, MKK12_FCCA, "JP"},
    {CTRY_JAPAN52, MKK12_MKKA1, "JP"},
    {CTRY_JAPAN53, MKK12_MKKC, "JP"},
    {CTRY_JAPAN54, MKK12_MKKA2, "JP"},
    {CTRY_JAPAN57, MKK13_MKKB, "JP"},
    {CTRY_JAPAN58, MKK14_MKKA1, "JP"},
    {CTRY_JAPAN59, MKK15_MKKA1, "JP"},

    {CTRY_JORDAN, ETSI2_WORLD, "JO"},
    {CTRY_KAZAKHSTAN, NULL1_WORLD, "KZ"},
    {CTRY_KOREA_NORTH, APL9_WORLD, "KP"},
    {CTRY_KOREA_ROC, APL9_WORLD, "KR"},
    {CTRY_KOREA_ROC2, APL2_WORLD, "K2"},
    {CTRY_KOREA_ROC3, APL9_WORLD, "K3"},
    {CTRY_KUWAIT, ETSI3_WORLD, "KW"},
    {CTRY_LATVIA, ETSI1_WORLD, "LV"},
    {CTRY_LEBANON, NULL1_WORLD, "LB"},
    {CTRY_LIECHTENSTEIN, ETSI1_WORLD, "LI"},
    {CTRY_LITHUANIA, ETSI1_WORLD, "LT"},
    {CTRY_LUXEMBOURG, ETSI1_WORLD, "LU"},
    {CTRY_MACAU, FCC2_WORLD, "MO"},
    {CTRY_MACEDONIA, NULL1_WORLD, "MK"},
    {CTRY_MALAYSIA, APL8_WORLD, "MY"},
    {CTRY_MALTA, ETSI1_WORLD, "MT"},
    {CTRY_MEXICO, FCC1_FCCA, "MX"},
    {CTRY_MONACO, ETSI4_WORLD, "MC"},
    {CTRY_MOROCCO, APL4_WORLD, "MA"},
    {CTRY_NEPAL, APL1_WORLD, "NP"},
    {CTRY_NETHERLANDS, ETSI1_WORLD, "NL"},
    {CTRY_NETHERLANDS_ANTILLES, ETSI1_WORLD, "AN"},
    {CTRY_NEW_ZEALAND, FCC2_ETSIC, "NZ"},
    {CTRY_NORWAY, ETSI1_WORLD, "NO"},
    {CTRY_OMAN, FCC3_WORLD, "OM"},
    {CTRY_PAKISTAN, NULL1_WORLD, "PK"},
    {CTRY_PANAMA, FCC1_FCCA, "PA"},
    {CTRY_PAPUA_NEW_GUINEA, FCC1_WORLD, "PG"},
    {CTRY_PERU, APL1_WORLD, "PE"},
    {CTRY_PHILIPPINES, APL1_WORLD, "PH"},
    {CTRY_POLAND, ETSI1_WORLD, "PL"},
    {CTRY_PORTUGAL, ETSI1_WORLD, "PT"},
    {CTRY_PUERTO_RICO, FCC1_FCCA, "PR"},
    {CTRY_QATAR, APL1_WORLD, "QA"},
    {CTRY_ROMANIA, NULL1_WORLD, "RO"},
    {CTRY_RUSSIA, NULL1_WORLD, "RU"},
    {CTRY_SAUDI_ARABIA, NULL1_WORLD, "SA"},
    {CTRY_SERBIA_MONTENEGRO, ETSI1_WORLD, "CS"},
    {CTRY_SINGAPORE, APL6_WORLD, "SG"},
    {CTRY_SLOVAKIA, ETSI1_WORLD, "SK"},
    {CTRY_SLOVENIA, ETSI1_WORLD, "SI"},
    {CTRY_SOUTH_AFRICA, FCC3_WORLD, "ZA"},
    {CTRY_SPAIN, ETSI1_WORLD, "ES"},
    {CTRY_SRI_LANKA, FCC3_WORLD, "LK"},
    {CTRY_SWEDEN, ETSI1_WORLD, "SE"},
    {CTRY_SWITZERLAND, ETSI1_WORLD, "CH"},
    {CTRY_SYRIA, NULL1_WORLD, "SY"},
    {CTRY_TAIWAN, APL3_FCCA, "TW"},
    {CTRY_THAILAND, FCC3_WORLD, "TH"},
    {CTRY_TRINIDAD_Y_TOBAGO, FCC3_WORLD, "TT"},
    {CTRY_TUNISIA, ETSI3_WORLD, "TN"},
    {CTRY_TURKEY, ETSI3_WORLD, "TR"},
    {CTRY_UKRAINE, NULL1_WORLD, "UA"},
    {CTRY_UAE, NULL1_WORLD, "AE"},
    {CTRY_UNITED_KINGDOM, ETSI1_WORLD, "GB"},
    {CTRY_UNITED_STATES, FCC3_FCCA, "US"},
    /* This "PS" is for US public safety actually... to support this we
     * would need to assign new special alpha2 to CRDA db as with the world
     * regdomain and use another alpha2 */
    {CTRY_UNITED_STATES_FCC49, FCC4_FCCA, "PS"},
    {CTRY_URUGUAY, FCC3_WORLD, "UY"},
    {CTRY_UZBEKISTAN, FCC3_FCCA, "UZ"},
    {CTRY_VENEZUELA, APL2_ETSIC, "VE"},
    {CTRY_VIET_NAM, NULL1_WORLD, "VN"},
    {CTRY_YEMEN, NULL1_WORLD, "YE"},
    {CTRY_ZIMBABWE, NULL1_WORLD, "ZW"},
    // clang-format on
};

#endif
