Apply clang-format to the rest of the tree
find * | grep "\.[ch]" | xargs clang-format --style=file -i
Test: mma -j32
Change-Id: I6fcc9862bb7bc07c2a367ca58fef2b3cd27a6f05
diff --git a/stack/test/ble_advertiser_test.cc b/stack/test/ble_advertiser_test.cc
index 11537be..f8c46a2 100644
--- a/stack/test/ble_advertiser_test.cc
+++ b/stack/test/ble_advertiser_test.cc
@@ -37,31 +37,31 @@
* whole stack. They will be removed, or changed into mocks one by one in the
* future, as the refactoring progresses */
bool BTM_BleLocalPrivacyEnabled() { return true; }
-uint16_t BTM_ReadDiscoverability(uint16_t *p_window, uint16_t *p_interval) {
+uint16_t BTM_ReadDiscoverability(uint16_t* p_window, uint16_t* p_interval) {
return true;
}
-bool SMP_Encrypt(uint8_t *key, uint8_t key_len, uint8_t *plain_text,
- uint8_t pt_len, tSMP_ENC *p_out) {
+bool SMP_Encrypt(uint8_t* key, uint8_t key_len, uint8_t* plain_text,
+ uint8_t pt_len, tSMP_ENC* p_out) {
return true;
}
void BTM_GetDeviceIDRoot(BT_OCTET16 irk) {}
-void btm_ble_update_dmt_flag_bits(uint8_t *flag_value,
+void btm_ble_update_dmt_flag_bits(uint8_t* flag_value,
const uint16_t connect_mode,
const uint16_t disc_mode) {}
void btm_acl_update_conn_addr(uint8_t conn_handle, BD_ADDR address) {}
-void btm_gen_resolvable_private_addr(void *p_cmd_cplt_cback) {
+void btm_gen_resolvable_private_addr(void* p_cmd_cplt_cback) {
// TODO(jpawlowski): should call p_cmd_cplt_cback();
}
-void alarm_set_on_queue(alarm_t *alarm, period_ms_t interval_ms,
- alarm_callback_t cb, void *data, fixed_queue_t *queue) {
+void alarm_set_on_queue(alarm_t* alarm, period_ms_t interval_ms,
+ alarm_callback_t cb, void* data, fixed_queue_t* queue) {
}
-void alarm_cancel(alarm_t *alarm) {}
-alarm_t *alarm_new_periodic(const char *name) { return nullptr; }
-alarm_t *alarm_new(const char *name) { return nullptr; }
-void alarm_free(alarm_t *alarm) {}
-const controller_t *controller_get_interface() { return nullptr; }
-fixed_queue_t *btu_general_alarm_queue = nullptr;
+void alarm_cancel(alarm_t* alarm) {}
+alarm_t* alarm_new_periodic(const char* name) { return nullptr; }
+alarm_t* alarm_new(const char* name) { return nullptr; }
+void alarm_free(alarm_t* alarm) {}
+const controller_t* controller_get_interface() { return nullptr; }
+fixed_queue_t* btu_general_alarm_queue = nullptr;
namespace {
@@ -70,12 +70,13 @@
AdvertiserHciMock() = default;
~AdvertiserHciMock() override = default;
- MOCK_METHOD1(ReadInstanceCount, void(base::Callback<void(uint8_t /* inst_cnt*/)>));
- MOCK_METHOD1(SetAdvertisingEventObserver, void(AdvertisingEventObserver *observer));
- MOCK_METHOD4(SetAdvertisingData,
- void(uint8_t, uint8_t *, uint8_t, status_cb));
+ MOCK_METHOD1(ReadInstanceCount,
+ void(base::Callback<void(uint8_t /* inst_cnt*/)>));
+ MOCK_METHOD1(SetAdvertisingEventObserver,
+ void(AdvertisingEventObserver* observer));
+ MOCK_METHOD4(SetAdvertisingData, void(uint8_t, uint8_t*, uint8_t, status_cb));
MOCK_METHOD4(SetScanResponseData,
- void(uint8_t, uint8_t *, uint8_t, status_cb));
+ void(uint8_t, uint8_t*, uint8_t, status_cb));
MOCK_METHOD3(SetRandomAddress, void(BD_ADDR, uint8_t, status_cb));
MOCK_METHOD3(Enable, void(uint8_t, uint8_t, status_cb));
@@ -117,8 +118,8 @@
base::Callback<void(uint8_t)> inst_cnt_Cb;
EXPECT_CALL(*hci_mock, ReadInstanceCount(_))
- .Times(Exactly(1))
- .WillOnce(SaveArg<0>(&inst_cnt_Cb));
+ .Times(Exactly(1))
+ .WillOnce(SaveArg<0>(&inst_cnt_Cb));
BleAdvertisingManager::Initialize(hci_mock.get());
@@ -337,10 +338,9 @@
/* Make sure that instance is not reenabled if it's already disabled */
TEST_F(BleAdvertisingManagerTest, test_reenabling_disabled_instance) {
- uint8_t advertiser_id = 1; // any unregistered value
+ uint8_t advertiser_id = 1; // any unregistered value
- EXPECT_CALL(*hci_mock, Enable(_, _, _))
- .Times(Exactly(0));
+ EXPECT_CALL(*hci_mock, Enable(_, _, _)).Times(Exactly(0));
BleAdvertisingManager::Get()->OnAdvertisingStateChanged(advertiser_id, 0, 5);
::testing::Mock::VerifyAndClearExpectations(hci_mock.get());
}
diff --git a/stack/test/stack_a2dp_test.cc b/stack/test/stack_a2dp_test.cc
index 65e8ecd..4274f5e 100644
--- a/stack/test/stack_a2dp_test.cc
+++ b/stack/test/stack_a2dp_test.cc
@@ -22,71 +22,71 @@
#include "stack/include/a2dp_sbc.h"
#include "stack/include/a2dp_vendor.h"
-//TODO(jpawlowski): remove once weird dependency in hci_layer.cc is removed
+// TODO(jpawlowski): remove once weird dependency in hci_layer.cc is removed
#include <hardware/bluetooth.h>
bt_bdaddr_t btif_local_bd_addr;
namespace {
const uint8_t codec_info_sbc[AVDT_CODEC_SIZE] = {
- 6, // Length (A2DP_SBC_INFO_LEN)
- 0, // Media Type: AVDT_MEDIA_TYPE_AUDIO
- 0, // Media Codec Type: A2DP_MEDIA_CT_SBC
- 0x20 | 0x01, // Sample Frequency: A2DP_SBC_IE_SAMP_FREQ_44 |
- // Channel Mode: A2DP_SBC_IE_CH_MD_JOINT
- 0x10 | 0x04 | 0x01, // Block Length: A2DP_SBC_IE_BLOCKS_16 |
- // Subbands: A2DP_SBC_IE_SUBBAND_8 |
- // Allocation Method: A2DP_SBC_IE_ALLOC_MD_L
- 2, // MinimumBitpool Value: A2DP_SBC_IE_MIN_BITPOOL
- 53, // Maximum Bitpool Value: A2DP_SBC_MAX_BITPOOL
- 7, // Dummy
- 8, // Dummy
- 9 // Dummy
+ 6, // Length (A2DP_SBC_INFO_LEN)
+ 0, // Media Type: AVDT_MEDIA_TYPE_AUDIO
+ 0, // Media Codec Type: A2DP_MEDIA_CT_SBC
+ 0x20 | 0x01, // Sample Frequency: A2DP_SBC_IE_SAMP_FREQ_44 |
+ // Channel Mode: A2DP_SBC_IE_CH_MD_JOINT
+ 0x10 | 0x04 | 0x01, // Block Length: A2DP_SBC_IE_BLOCKS_16 |
+ // Subbands: A2DP_SBC_IE_SUBBAND_8 |
+ // Allocation Method: A2DP_SBC_IE_ALLOC_MD_L
+ 2, // MinimumBitpool Value: A2DP_SBC_IE_MIN_BITPOOL
+ 53, // Maximum Bitpool Value: A2DP_SBC_MAX_BITPOOL
+ 7, // Dummy
+ 8, // Dummy
+ 9 // Dummy
};
const uint8_t codec_info_sbc_sink[AVDT_CODEC_SIZE] = {
- 6, // Length (A2DP_SBC_INFO_LEN)
- 0, // Media Type: AVDT_MEDIA_TYPE_AUDIO
- 0, // Media Codec Type: A2DP_MEDIA_CT_SBC
- 0x20 | 0x10 | // Sample Frequency: A2DP_SBC_IE_SAMP_FREQ_44 |
- // A2DP_SBC_IE_SAMP_FREQ_48 |
- 0x08 | 0x04 | 0x02 | 0x01, // Channel Mode: A2DP_SBC_IE_CH_MD_MONO |
- // A2DP_SBC_IE_CH_MD_DUAL |
- // A2DP_SBC_IE_CH_MD_STEREO |
- // A2DP_SBC_IE_CH_MD_JOINT
- 0x80 | 0x40 | 0x20 | 0x10 | // Block Length: A2DP_SBC_IE_BLOCKS_4 |
- // A2DP_SBC_IE_BLOCKS_8 |
- // A2DP_SBC_IE_BLOCKS_12 |
- // A2DP_SBC_IE_BLOCKS_16 |
- 0x08 | 0x04 | // Subbands: A2DP_SBC_IE_SUBBAND_4 |
- // A2DP_SBC_IE_SUBBAND_8 |
- 0x02 | 0x01, // Allocation Method: A2DP_SBC_IE_ALLOC_MD_S |
- // A2DP_SBC_IE_ALLOC_MD_L
- 2, // MinimumBitpool Value: A2DP_SBC_IE_MIN_BITPOOL
- 53, // Maximum Bitpool Value: A2DP_SBC_MAX_BITPOOL
- 7, // Dummy
- 8, // Dummy
- 9 // Dummy
+ 6, // Length (A2DP_SBC_INFO_LEN)
+ 0, // Media Type: AVDT_MEDIA_TYPE_AUDIO
+ 0, // Media Codec Type: A2DP_MEDIA_CT_SBC
+ 0x20 | 0x10 | // Sample Frequency: A2DP_SBC_IE_SAMP_FREQ_44 |
+ // A2DP_SBC_IE_SAMP_FREQ_48 |
+ 0x08 | 0x04 | 0x02 | 0x01, // Channel Mode: A2DP_SBC_IE_CH_MD_MONO |
+ // A2DP_SBC_IE_CH_MD_DUAL |
+ // A2DP_SBC_IE_CH_MD_STEREO |
+ // A2DP_SBC_IE_CH_MD_JOINT
+ 0x80 | 0x40 | 0x20 | 0x10 | // Block Length: A2DP_SBC_IE_BLOCKS_4 |
+ // A2DP_SBC_IE_BLOCKS_8 |
+ // A2DP_SBC_IE_BLOCKS_12 |
+ // A2DP_SBC_IE_BLOCKS_16 |
+ 0x08 | 0x04 | // Subbands: A2DP_SBC_IE_SUBBAND_4 |
+ // A2DP_SBC_IE_SUBBAND_8 |
+ 0x02 | 0x01, // Allocation Method: A2DP_SBC_IE_ALLOC_MD_S |
+ // A2DP_SBC_IE_ALLOC_MD_L
+ 2, // MinimumBitpool Value: A2DP_SBC_IE_MIN_BITPOOL
+ 53, // Maximum Bitpool Value: A2DP_SBC_MAX_BITPOOL
+ 7, // Dummy
+ 8, // Dummy
+ 9 // Dummy
};
const uint8_t codec_info_non_a2dp[AVDT_CODEC_SIZE] = {
- 8, // Length
- 0, // Media Type: AVDT_MEDIA_TYPE_AUDIO
- 0xFF, // Media Codec Type: A2DP_MEDIA_CT_NON_A2DP
- 3, 4, 0, 0, // Vendor ID: LSB first, upper two octets should be 0
- 7, 8, // Codec ID: LSB first
- 9 // Dummy
+ 8, // Length
+ 0, // Media Type: AVDT_MEDIA_TYPE_AUDIO
+ 0xFF, // Media Codec Type: A2DP_MEDIA_CT_NON_A2DP
+ 3, 4, 0, 0, // Vendor ID: LSB first, upper two octets should be 0
+ 7, 8, // Codec ID: LSB first
+ 9 // Dummy
};
const uint8_t codec_info_non_a2dp_dummy[AVDT_CODEC_SIZE] = {
- 8, // Length
- 0, // Media Type: AVDT_MEDIA_TYPE_AUDIO
- 0xFF, // Media Codec Type: A2DP_MEDIA_CT_NON_A2DP
- 3, 4, 0, 0, // Vendor ID: LSB first, upper two octets should be 0
- 7, 8, // Codec ID: LSB first
- 10 // Dummy
+ 8, // Length
+ 0, // Media Type: AVDT_MEDIA_TYPE_AUDIO
+ 0xFF, // Media Codec Type: A2DP_MEDIA_CT_NON_A2DP
+ 3, 4, 0, 0, // Vendor ID: LSB first, upper two octets should be 0
+ 7, 8, // Codec ID: LSB first
+ 10 // Dummy
};
-} // namespace
+} // namespace
TEST(StackA2dpTest, test_a2dp_is_codec_valid) {
EXPECT_TRUE(A2DP_IsSourceCodecValid(codec_info_sbc));
@@ -109,14 +109,14 @@
EXPECT_FALSE(A2DP_IsPeerSinkCodecValid(codec_info_sbc_invalid));
memcpy(codec_info_sbc_invalid, codec_info_sbc, sizeof(codec_info_sbc));
- codec_info_sbc_invalid[0] = 0; // Corrupt the Length field
+ codec_info_sbc_invalid[0] = 0; // Corrupt the Length field
EXPECT_FALSE(A2DP_IsSourceCodecValid(codec_info_sbc_invalid));
EXPECT_FALSE(A2DP_IsSinkCodecValid(codec_info_sbc_invalid));
EXPECT_FALSE(A2DP_IsPeerSourceCodecValid(codec_info_sbc_invalid));
EXPECT_FALSE(A2DP_IsPeerSinkCodecValid(codec_info_sbc_invalid));
memcpy(codec_info_sbc_invalid, codec_info_sbc, sizeof(codec_info_sbc));
- codec_info_sbc_invalid[1] = 0xff; // Corrupt the Media Type field
+ codec_info_sbc_invalid[1] = 0xff; // Corrupt the Media Type field
EXPECT_FALSE(A2DP_IsSourceCodecValid(codec_info_sbc_invalid));
EXPECT_FALSE(A2DP_IsSinkCodecValid(codec_info_sbc_invalid));
EXPECT_FALSE(A2DP_IsPeerSourceCodecValid(codec_info_sbc_invalid));
@@ -188,10 +188,10 @@
// Include extra (less preferred) capabilities and test again
uint8_t codec_info_sbc_test1[AVDT_CODEC_SIZE];
memcpy(codec_info_sbc_test1, codec_info_sbc, sizeof(codec_info_sbc));
- codec_info_sbc_test1[3] |= (A2DP_SBC_IE_CH_MD_STEREO | A2DP_SBC_IE_CH_MD_DUAL |
- A2DP_SBC_IE_CH_MD_MONO);
- codec_info_sbc_test1[4] |= (A2DP_SBC_IE_BLOCKS_12 | A2DP_SBC_IE_BLOCKS_8 |
- A2DP_SBC_IE_BLOCKS_4);
+ codec_info_sbc_test1[3] |= (A2DP_SBC_IE_CH_MD_STEREO |
+ A2DP_SBC_IE_CH_MD_DUAL | A2DP_SBC_IE_CH_MD_MONO);
+ codec_info_sbc_test1[4] |=
+ (A2DP_SBC_IE_BLOCKS_12 | A2DP_SBC_IE_BLOCKS_8 | A2DP_SBC_IE_BLOCKS_4);
codec_info_sbc_test1[4] |= A2DP_SBC_IE_SUBBAND_4;
codec_info_sbc_test1[4] |= A2DP_SBC_IE_ALLOC_MD_S;
memset(codec_info_result, 0, sizeof(codec_info_result));
@@ -229,7 +229,8 @@
TEST(StackA2dpTest, test_a2dp_codec_sep_index_str) {
// Explicit tests for known codecs
EXPECT_STREQ(A2DP_CodecSepIndexStr(A2DP_CODEC_SEP_INDEX_SOURCE_SBC), "SBC");
- EXPECT_STREQ(A2DP_CodecSepIndexStr(A2DP_CODEC_SEP_INDEX_SINK_SBC), "SBC SINK");
+ EXPECT_STREQ(A2DP_CodecSepIndexStr(A2DP_CODEC_SEP_INDEX_SINK_SBC),
+ "SBC SINK");
// Test that the unknown codec string has not changed
EXPECT_STREQ(A2DP_CodecSepIndexStr(A2DP_CODEC_SEP_INDEX_MAX),
@@ -238,7 +239,7 @@
// Test that each codec has a known string
for (int i = 0; i < A2DP_CODEC_SEP_INDEX_MAX; i++) {
tA2DP_CODEC_SEP_INDEX codec_sep_index =
- static_cast<tA2DP_CODEC_SEP_INDEX>(i);
+ static_cast<tA2DP_CODEC_SEP_INDEX>(i);
EXPECT_STRNE(A2DP_CodecSepIndexStr(codec_sep_index),
"UNKNOWN CODEC SEP INDEX");
}
@@ -256,7 +257,7 @@
for (size_t i = 0; i < codec_info_sbc[0] + 1; i++) {
EXPECT_EQ(avdt_cfg.codec_info[i], codec_info_sbc[i]);
}
- // Test for content protection
+// Test for content protection
#if (BTA_AV_CO_CP_SCMS_T == TRUE)
EXPECT_EQ(avdt_cfg.protect_info[0], AVDT_CP_LOSC);
EXPECT_EQ(avdt_cfg.protect_info[1], (AVDT_CP_SCMS_T_ID & 0xFF));
@@ -301,16 +302,15 @@
// Test all unknown codecs
memcpy(codec_info_test, codec_info_sbc, sizeof(codec_info_sbc));
for (uint8_t codec_type = A2DP_MEDIA_CT_SBC + 1;
- codec_type < A2DP_MEDIA_CT_NON_A2DP;
- codec_type++) {
- codec_info_test[2] = codec_type; // Unknown codec type
+ codec_type < A2DP_MEDIA_CT_NON_A2DP; codec_type++) {
+ codec_info_test[2] = codec_type; // Unknown codec type
EXPECT_STREQ(A2DP_CodecName(codec_info_test), "UNKNOWN CODEC");
}
}
TEST(StackA2dpTest, test_a2dp_vendor) {
EXPECT_EQ(A2DP_VendorCodecGetVendorId(codec_info_non_a2dp),
- (uint32_t)0x00000403);
+ (uint32_t)0x00000403);
EXPECT_EQ(A2DP_VendorCodecGetCodecId(codec_info_non_a2dp), (uint16_t)0x0807);
EXPECT_TRUE(A2DP_VendorUsesRtpHeader(true, codec_info_non_a2dp));
EXPECT_TRUE(A2DP_VendorUsesRtpHeader(false, codec_info_non_a2dp));
@@ -318,8 +318,8 @@
TEST(StackA2dpTest, test_a2dp_codec_type_equals) {
EXPECT_TRUE(A2DP_CodecTypeEquals(codec_info_sbc, codec_info_sbc_sink));
- EXPECT_TRUE(A2DP_CodecTypeEquals(codec_info_non_a2dp,
- codec_info_non_a2dp_dummy));
+ EXPECT_TRUE(
+ A2DP_CodecTypeEquals(codec_info_non_a2dp, codec_info_non_a2dp_dummy));
EXPECT_FALSE(A2DP_CodecTypeEquals(codec_info_sbc, codec_info_non_a2dp));
}
@@ -423,7 +423,7 @@
TEST(StackA2dpTest, test_a2dp_get_packet_timestamp) {
uint8_t a2dp_data[1000];
uint32_t timestamp;
- uint32_t *p_ts = reinterpret_cast<uint32_t *>(a2dp_data);
+ uint32_t* p_ts = reinterpret_cast<uint32_t*>(a2dp_data);
memset(a2dp_data, 0xAB, sizeof(a2dp_data));
*p_ts = 0x12345678;
@@ -434,13 +434,13 @@
memset(a2dp_data, 0xAB, sizeof(a2dp_data));
*p_ts = 0x12345678;
timestamp = 0xFFFFFFFF;
- EXPECT_FALSE(A2DP_GetPacketTimestamp(codec_info_non_a2dp, a2dp_data,
- ×tamp));
+ EXPECT_FALSE(
+ A2DP_GetPacketTimestamp(codec_info_non_a2dp, a2dp_data, ×tamp));
}
TEST(StackA2dpTest, test_a2dp_build_codec_header) {
uint8_t a2dp_data[1000];
- BT_HDR *p_buf = reinterpret_cast<BT_HDR *>(a2dp_data);
+ BT_HDR* p_buf = reinterpret_cast<BT_HDR*>(a2dp_data);
const uint16_t BT_HDR_LEN = 500;
const uint16_t BT_HDR_OFFSET = 50;
const uint8_t FRAMES_PER_PACKET = 0xCD;
@@ -449,17 +449,19 @@
p_buf->len = BT_HDR_LEN;
p_buf->offset = BT_HDR_OFFSET;
EXPECT_TRUE(A2DP_BuildCodecHeader(codec_info_sbc, p_buf, FRAMES_PER_PACKET));
- EXPECT_EQ(p_buf->offset + 1, BT_HDR_OFFSET); // Modified by A2DP_SBC_MPL_HDR_LEN
- EXPECT_EQ(p_buf->len - 1, BT_HDR_LEN); // Modified by A2DP_SBC_MPL_HDR_LEN
- const uint8_t *p =
- reinterpret_cast<const uint8_t *>(p_buf + 1) + p_buf->offset;
- EXPECT_EQ(*p, static_cast<uint8_t>(0x0D)); // 0xCD masked with A2DP_SBC_HDR_NUM_MSK
+ EXPECT_EQ(p_buf->offset + 1,
+ BT_HDR_OFFSET); // Modified by A2DP_SBC_MPL_HDR_LEN
+ EXPECT_EQ(p_buf->len - 1, BT_HDR_LEN); // Modified by A2DP_SBC_MPL_HDR_LEN
+ const uint8_t* p =
+ reinterpret_cast<const uint8_t*>(p_buf + 1) + p_buf->offset;
+ EXPECT_EQ(
+ *p, static_cast<uint8_t>(0x0D)); // 0xCD masked with A2DP_SBC_HDR_NUM_MSK
memset(a2dp_data, 0xAB, sizeof(a2dp_data));
p_buf->len = BT_HDR_LEN;
p_buf->offset = BT_HDR_OFFSET;
- EXPECT_FALSE(A2DP_BuildCodecHeader(codec_info_non_a2dp, p_buf,
- FRAMES_PER_PACKET));
+ EXPECT_FALSE(
+ A2DP_BuildCodecHeader(codec_info_non_a2dp, p_buf, FRAMES_PER_PACKET));
}
TEST(StackA2dpTest, test_a2dp_adjust_codec) {
@@ -470,21 +472,21 @@
memset(codec_info_sbc_test, 0xAB, sizeof(codec_info_sbc_test));
memcpy(codec_info_sbc_test, codec_info_sbc, sizeof(codec_info_sbc));
EXPECT_TRUE(A2DP_AdjustCodec(codec_info_sbc_test));
- EXPECT_TRUE(memcmp(codec_info_sbc_test, codec_info_sbc,
- sizeof(codec_info_sbc)) == 0);
+ EXPECT_TRUE(
+ memcmp(codec_info_sbc_test, codec_info_sbc, sizeof(codec_info_sbc)) == 0);
// Test updating a valid SBC codec that needs adjustment
memset(codec_info_sbc_test, 0xAB, sizeof(codec_info_sbc_test));
memcpy(codec_info_sbc_test, codec_info_sbc, sizeof(codec_info_sbc));
codec_info_sbc_test[6] = 54; // A2DP_SBC_MAX_BITPOOL + 1
EXPECT_TRUE(A2DP_AdjustCodec(codec_info_sbc_test));
- EXPECT_TRUE(memcmp(codec_info_sbc_test, codec_info_sbc,
- sizeof(codec_info_sbc)) == 0);
+ EXPECT_TRUE(
+ memcmp(codec_info_sbc_test, codec_info_sbc, sizeof(codec_info_sbc)) == 0);
// Test updating an invalid SBC codec
memset(codec_info_sbc_test, 0xAB, sizeof(codec_info_sbc_test));
memcpy(codec_info_sbc_test, codec_info_sbc, sizeof(codec_info_sbc));
- codec_info_sbc_test[6] = 255; // Invalid MAX_BITPOOL
+ codec_info_sbc_test[6] = 255; // Invalid MAX_BITPOOL
EXPECT_FALSE(A2DP_AdjustCodec(codec_info_sbc_test));
// Test updating a non-A2DP codec that is not recognized