Home
last modified time | relevance | path

Searched refs:psm (Results 1 – 25 of 114) sorted by relevance

12345

/packages/modules/Bluetooth/system/stack/l2cap/
Dl2c_api.cc60 uint16_t L2CA_RegisterWithSecurity(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, in L2CA_RegisterWithSecurity() argument
64 auto ret = L2CA_Register(psm, p_cb_info, enable_snoop, p_ertm_info, my_mtu, required_remote_mtu, in L2CA_RegisterWithSecurity()
66 get_btm_client_interface().security.BTM_SetSecurityLevel(false, "", 0, sec_level, psm, 0, 0); in L2CA_RegisterWithSecurity()
105 uint16_t L2CA_Register(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop, in L2CA_Register() argument
114 uint16_t vpsm = psm; in L2CA_Register()
125 psm, config_cfm_cb, config_ind_cb, data_ind_cb, disconnect_ind_cb); in L2CA_Register()
130 if (L2C_INVALID_PSM(psm)) { in L2CA_Register()
131 log::error("L2CAP - invalid PSM value, PSM: 0x{:04x}", psm); in L2CA_Register()
137 if ((psm >= 0x1001) && (p_cb_info.pL2CA_ConnectInd_Cb == NULL)) { in L2CA_Register()
145 log::debug("L2CAP - Real PSM: 0x{:04x} Virtual PSM: 0x{:04x}", psm, vpsm); in L2CA_Register()
[all …]
Dl2cap_api.cc27 uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop, in L2CA_Register() argument
30 return ::L2CA_Register(psm, p_cb_info, enable_snoop, p_ertm_info, my_mtu, required_remote_mtu, in L2CA_Register()
35 uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop, in L2CA_RegisterWithSecurity() argument
38 return ::L2CA_RegisterWithSecurity(psm, p_cb_info, enable_snoop, p_ertm_info, my_mtu, in L2CA_RegisterWithSecurity()
42 void bluetooth::stack::l2cap::Impl::L2CA_Deregister(uint16_t psm) { ::L2CA_Deregister(psm); } in L2CA_Deregister() argument
48 void bluetooth::stack::l2cap::Impl::L2CA_FreeLePSM(uint16_t psm) { return ::L2CA_FreeLePSM(psm); } in L2CA_FreeLePSM() argument
50 [[nodiscard]] uint16_t bluetooth::stack::l2cap::Impl::L2CA_ConnectReq(uint16_t psm, in L2CA_ConnectReq() argument
52 return ::L2CA_ConnectReq(psm, p_bd_addr); in L2CA_ConnectReq()
56 uint16_t psm, const RawAddress& p_bd_addr, uint16_t sec_level) { in L2CA_ConnectReqWithSecurity() argument
57 return ::L2CA_ConnectReqWithSecurity(psm, p_bd_addr, sec_level); in L2CA_ConnectReqWithSecurity()
[all …]
Dl2c_api.h41 [[nodiscard]] uint16_t L2CA_Register(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info,
45 [[nodiscard]] uint16_t L2CA_RegisterWithSecurity(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info,
49 void L2CA_Deregister(uint16_t psm) override;
53 void L2CA_FreeLePSM(uint16_t psm) override;
55 [[nodiscard]] uint16_t L2CA_RegisterLECoc(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info,
57 void L2CA_DeregisterLECoc(uint16_t psm) override;
67 [[nodiscard]] uint16_t L2CA_ConnectReq(uint16_t psm, const RawAddress& bd_addr) override;
68 [[nodiscard]] uint16_t L2CA_ConnectReqWithSecurity(uint16_t psm, const RawAddress& bd_addr,
88 [[nodiscard]] uint16_t L2CA_ConnectLECocReq(uint16_t psm, const RawAddress& bd_addr,
92 uint16_t psm, const RawAddress& bd_addr, tL2CAP_LE_CFG_INFO* p_cfg) override;
Dl2c_csm.cc179 p_ccb->p_rcb->psm, p_ccb->remote_id); in l2c_csm_indicate_connection_open()
189 p_ccb->p_rcb->psm, p_ccb->local_cid, p_ccb->remote_id, p_ccb->p_lcb->remote_bd_addr); in l2c_csm_indicate_connection_open()
288 l2c_csm_get_event_name(event), psm_to_text(p_ccb->p_rcb->psm)); in l2c_csm_closed()
300 l2ble_sec_access_req(p_ccb->p_lcb->remote_bd_addr, p_ccb->p_rcb->psm, true, in l2c_csm_closed()
304 btm_sec_l2cap_access_req(p_ccb->p_lcb->remote_bd_addr, p_ccb->p_rcb->psm, true, in l2c_csm_closed()
325 l2ble_sec_access_req(p_ccb->p_lcb->remote_bd_addr, p_ccb->p_rcb->psm, true, in l2c_csm_closed()
333 if (btm_sec_l2cap_access_req(p_ccb->p_lcb->remote_bd_addr, p_ccb->p_rcb->psm, true, in l2c_csm_closed()
380 p_ccb->p_lcb->remote_bd_addr, p_ccb->p_rcb->psm, false, &l2c_link_sec_comp, p_ccb); in l2c_csm_closed()
410 auto status = btm_sec_l2cap_access_req(p_ccb->p_lcb->remote_bd_addr, p_ccb->p_rcb->psm, in l2c_csm_closed()
416 log::info("Check security for psm 0x{:04x}, status {}", p_ccb->p_rcb->psm, status); in l2c_csm_closed()
[all …]
/packages/modules/Bluetooth/system/test/mock/
Dmock_stack_l2cap_api.h47 std::function<uint16_t(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop,
54 uint16_t operator()(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop, in operator()
57 return body(psm, p_cb_info, enable_snoop, p_ertm_info, my_mtu, required_remote_mtu, sec_level); in operator()
66 std::function<uint16_t(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop,
73 uint16_t operator()(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop, in operator()
76 return body(psm, p_cb_info, enable_snoop, p_ertm_info, my_mtu, required_remote_mtu, sec_level); in operator()
85 void operator()(uint16_t psm) { body(psm); } in operator()
101 void operator()(uint16_t psm) { body(psm); } in operator()
108 std::function<uint16_t(uint16_t psm, const RawAddress& p_bd_addr, uint16_t sec_level)> body{
112 uint16_t operator()(uint16_t psm, const RawAddress& p_bd_addr, uint16_t sec_level) { in operator()
[all …]
Dmock_stack_l2cap_api.cc85 uint16_t L2CA_RegisterWithSecurity(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, in L2CA_RegisterWithSecurity() argument
91 psm, p_cb_info, enable_snoop, p_ertm_info, my_mtu, required_remote_mtu, sec_level); in L2CA_RegisterWithSecurity()
93 uint16_t L2CA_Register(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop, in L2CA_Register() argument
97 return test::mock::stack_l2cap_api::L2CA_Register(psm, p_cb_info, enable_snoop, p_ertm_info, in L2CA_Register()
100 void L2CA_Deregister(uint16_t psm) { in L2CA_Deregister() argument
102 test::mock::stack_l2cap_api::L2CA_Deregister(psm); in L2CA_Deregister()
108 void L2CA_FreeLePSM(uint16_t psm) { in L2CA_FreeLePSM() argument
110 test::mock::stack_l2cap_api::L2CA_FreeLePSM(psm); in L2CA_FreeLePSM()
112 uint16_t L2CA_ConnectReqWithSecurity(uint16_t psm, const RawAddress& p_bd_addr, in L2CA_ConnectReqWithSecurity() argument
115 return test::mock::stack_l2cap_api::L2CA_ConnectReqWithSecurity(psm, p_bd_addr, sec_level); in L2CA_ConnectReqWithSecurity()
[all …]
Dmock_stack_l2cap_interface.h35 (uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop,
39 (uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop,
42 MOCK_METHOD(void, L2CA_Deregister, (uint16_t psm));
45 MOCK_METHOD(void, L2CA_FreeLePSM, (uint16_t psm));
48 (uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, uint16_t sec_level,
50 MOCK_METHOD(void, L2CA_DeregisterLECoc, (uint16_t psm));
58 MOCK_METHOD(uint16_t, L2CA_ConnectReq, (uint16_t psm, const RawAddress& bd_addr));
61 (uint16_t psm, const RawAddress& bd_addr, uint16_t sec_level));
79 (uint16_t psm, const RawAddress& bd_addr, tL2CAP_LE_CFG_INFO* p_cfg,
82 (uint16_t psm, const RawAddress& bd_addr, tL2CAP_LE_CFG_INFO* p_cfg));
/packages/modules/Bluetooth/system/stack/l2cap/internal/
Dl2c_api.h81 #define L2C_INVALID_PSM(psm) (((psm) & 0x0101) != 0x0001) argument
82 #define L2C_IS_VALID_PSM(psm) (((psm) & 0x0101) == 0x0001) argument
83 #define L2C_IS_VALID_LE_PSM(psm) (((psm) > 0x0000) && ((psm) < 0x0100)) argument
190 std::vector<uint16_t>& lcids, uint16_t psm,
225 [[nodiscard]] uint16_t L2CA_RegisterWithSecurity(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info,
244 [[nodiscard]] uint16_t L2CA_Register(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info,
259 void L2CA_Deregister(uint16_t psm);
282 void L2CA_FreeLePSM(uint16_t psm);
284 [[nodiscard]] uint16_t L2CA_ConnectReqWithSecurity(uint16_t psm, const RawAddress& p_bd_addr,
299 [[nodiscard]] uint16_t L2CA_ConnectReq(uint16_t psm, const RawAddress& p_bd_addr);
[all …]
/packages/modules/Bluetooth/system/stack/test/common/
Dmock_l2cap_layer.cc34 uint16_t L2CA_Register(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop, in L2CA_Register() argument
37 bluetooth::log::verbose("psm={}, enable_snoop={}", psm, enable_snoop); in L2CA_Register()
38 return l2cap_interface->Register(psm, p_cb_info, enable_snoop, p_ertm_info); in L2CA_Register()
41 uint16_t L2CA_ConnectReq(uint16_t psm, const RawAddress& bd_addr) { in L2CA_ConnectReq() argument
42 return l2cap_interface->ConnectRequest(psm, bd_addr); in L2CA_ConnectReq()
51 uint16_t L2CA_RegisterLECoc(uint16_t psm, const tL2CAP_APPL_INFO& cb_info, uint16_t sec_level, in L2CA_RegisterLECoc() argument
53 return l2cap_interface->RegisterLECoc(psm, cb_info, sec_level); in L2CA_RegisterLECoc()
56 void L2CA_DeregisterLECoc(uint16_t psm) { return l2cap_interface->DeregisterLECoc(psm); } in L2CA_DeregisterLECoc() argument
66 std::vector<uint16_t> L2CA_ConnectCreditBasedReq(uint16_t psm, const RawAddress& bd_addr, in L2CA_ConnectCreditBasedReq() argument
68 return l2cap_interface->ConnectCreditBasedReq(psm, bd_addr, p_cfg); in L2CA_ConnectCreditBasedReq()
Dmock_l2cap_layer.h33 virtual uint16_t Register(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop,
35 virtual uint16_t ConnectRequest(uint16_t psm, const RawAddress& bd_addr) = 0;
43 virtual uint16_t RegisterLECoc(uint16_t psm, const tL2CAP_APPL_INFO& cb_info,
45 virtual void DeregisterLECoc(uint16_t psm) = 0;
49 virtual std::vector<uint16_t> ConnectCreditBasedReq(uint16_t psm, const RawAddress& bd_addr,
60 MOCK_METHOD4(Register, uint16_t(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info,
62 MOCK_METHOD2(ConnectRequest, uint16_t(uint16_t psm, const RawAddress& bd_addr));
71 uint16_t(uint16_t psm, const tL2CAP_APPL_INFO& cb_info, uint16_t sec_level));
72 MOCK_METHOD1(DeregisterLECoc, void(uint16_t psm));
78 MOCK_METHOD3(ConnectCreditBasedReq, std::vector<uint16_t>(uint16_t psm, const RawAddress& bd_addr,
/packages/modules/Bluetooth/system/stack/btm/
Dbtm_sec_cb.cc100 tBTM_SEC_SERV_REC* tBTM_SEC_CB::find_first_serv_rec(bool is_originator, uint16_t psm) { in find_first_serv_rec() argument
104 if (is_originator && p_out_serv && p_out_serv->psm == psm) { in find_first_serv_rec()
112 if ((p_serv_rec->security_flags & BTM_SEC_IN_USE) && (p_serv_rec->psm == psm)) { in find_first_serv_rec()
202 uint16_t sec_level, uint16_t psm, uint32_t mx_proto_id, in AddService() argument
219 if (p_srec->psm == psm && p_srec->mx_proto_id == mx_proto_id && in AddService()
250 p_srec->psm = psm; in AddService()
313 index, service_id, is_originator, psm, mx_proto_id, mx_chan_id, p_srec->security_flags, in AddService()
326 if ((p_srec->security_flags & BTM_SEC_IN_USE) && (p_srec->psm != BT_PSM_SDP) && in RemoveServiceById()
336 uint8_t tBTM_SEC_CB::RemoveServiceByPsm(uint16_t psm) { in RemoveServiceByPsm() argument
343 if ((p_srec->security_flags & BTM_SEC_IN_USE) && (p_srec->psm == psm)) { in RemoveServiceByPsm()
[all …]
/packages/modules/Bluetooth/system/stack/include/
Dl2cap_types.h31 #define L2C_INVALID_PSM(psm) (((psm) & 0x0101) != 0x0001) argument
32 #define L2C_IS_VALID_PSM(psm) (((psm) & 0x0101) == 0x0001) argument
33 #define L2C_IS_VALID_LE_PSM(psm) (((psm) > 0x0000) && ((psm) < 0x0100)) argument
Dl2cap_interface.h122 std::vector<uint16_t>& lcids, uint16_t psm,
276 virtual uint16_t L2CA_Register(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop,
279 virtual uint16_t L2CA_RegisterWithSecurity(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info,
296 virtual void L2CA_Deregister(uint16_t psm) = 0;
320 virtual void L2CA_FreeLePSM(uint16_t psm) = 0;
340 virtual uint16_t L2CA_ConnectReq(uint16_t psm, const RawAddress& p_bd_addr) = 0;
341 virtual uint16_t L2CA_ConnectReqWithSecurity(uint16_t psm, const RawAddress& p_bd_addr,
362 virtual uint16_t L2CA_RegisterLECoc(uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info,
377 virtual void L2CA_DeregisterLECoc(uint16_t psm) = 0;
397 virtual uint16_t L2CA_ConnectLECocReq(uint16_t psm, const RawAddress& p_bd_addr,
[all …]
Dbt_psm_types.h49 inline std::string bt_psm_text(const tBT_PSM& psm) { in bt_psm_text() argument
50 switch (psm) { in bt_psm_text()
68 RETURN_UNKNOWN_TYPE_STRING(type, psm); in bt_psm_text()
71 inline std::string psm_to_text(uint16_t psm) { return bt_psm_text(static_cast<tBT_PSM>(psm)); } in psm_to_text() argument
/packages/modules/Bluetooth/system/stack/gap/
Dgap_conn.cc64 uint16_t psm; member
94 static void gap_connect_ind(const RawAddress& bd_addr, uint16_t l2cap_cid, uint16_t psm,
170 const RawAddress* p_rem_bda, uint16_t psm, uint16_t le_mps, in GAP_ConnOpen() argument
252 p_ccb->psm = stack::l2cap::get_interface().L2CA_RegisterWithSecurity( in GAP_ConnOpen()
253 psm, conn.reg_info, false /* enable_snoop */, &p_ccb->ertm_info, L2CAP_SDU_LENGTH_MAX, in GAP_ConnOpen()
255 if (p_ccb->psm == 0) { in GAP_ConnOpen()
256 log::error("Failure registering PSM 0x{:04x}", psm); in GAP_ConnOpen()
263 p_ccb->psm = stack::l2cap::get_interface().L2CA_RegisterLECoc(psm, conn.reg_info, security, in GAP_ConnOpen()
265 if (p_ccb->psm == 0) { in GAP_ConnOpen()
266 log::error("Failure registering PSM 0x{:04x}", psm); in GAP_ConnOpen()
[all …]
/packages/modules/Connectivity/framework/src/android/net/
DL2capNetworkSpecifier.java137 MacAddress remoteAddress, int psm) { in L2capNetworkSpecifier() argument
141 mPsm = psm; in L2capNetworkSpecifier()
277 public Builder setPsm(@IntRange(from = 0, to = 255) int psm) { in setPsm()
278 if (psm < 0 /* PSM_ANY */ || psm > 0xFF) { in setPsm()
281 mPsm = psm; in setPsm()
385 final String psm = (mPsm == PSM_ANY) ? "PSM_ANY" : String.valueOf(mPsm); in toString() local
388 role, headerCompression, Objects.toString(mRemoteAddress), psm); in toString()
/packages/modules/Bluetooth/system/stack/test/
Dstack_avctp_test.cc55 .WillRepeatedly([this](uint16_t psm, const tL2CAP_APPL_INFO& cb, bool /* c */, in SetUp()
58 this->callback_map_.insert(std::make_tuple(psm, cb)); in SetUp()
59 return psm; in SetUp()
146 .WillRepeatedly([&callback_map](uint16_t psm, const tL2CAP_APPL_INFO& cb, bool /* c */, in TEST_F()
149 callback_map.insert(std::make_tuple(psm, cb)); in TEST_F()
150 return psm; in TEST_F()
157 [](uint16_t psm, const RawAddress /* bd_addr */, uint16_t /* sec_level */) { in TEST_F() argument
158 return (psm == BT_PSM_AVCTP) ? kRemoteCid : kRemoteBrowseCid; in TEST_F()
/packages/modules/Bluetooth/system/stack/fuzzers/
Davrc_fuzzer.cc70 [](uint16_t psm, const RawAddress& p_bd_addr, uint16_t sec_level) { in FakeBtStack() argument
76 [](uint16_t psm, const tL2CAP_APPL_INFO& p_cb_info, bool enable_snoop, in FakeBtStack()
79 log::assert_that(psm == BT_PSM_AVCTP || psm == BT_PSM_AVCTP_BROWSE, in FakeBtStack()
81 if (psm == BT_PSM_AVDTP) { in FakeBtStack()
83 } else if (psm == BT_PSM_AVCTP_BROWSE) { in FakeBtStack()
86 return psm; in FakeBtStack()
88 test::mock::stack_l2cap_api::L2CA_Deregister.body = [](uint16_t psm) {}; in FakeBtStack() argument
/packages/modules/Bluetooth/android/pandora/server/src/
DL2cap.kt67 val psm = in connect() constant
69 request.hasBasic() -> request.basic.psm in connect()
74 Log.i(TAG, "connect: $device psm: $psm") in connect()
76 val bluetoothSocket = device.createInsecureL2capChannel(psm) in connect()
101 val psm = in waitConnection() constant
103 request.hasBasic() -> request.basic.psm in waitConnection()
113 if (psm == 0) { in waitConnection()
116 bluetoothAdapter.listenUsingInsecureL2capOn(psm) in waitConnection()
/packages/modules/Bluetooth/system/gd/rust/linux/stack/src/
Dsocket_manager.rs66 pub psm: Option<i32>, field
84 psm: None, in new()
99 psm: Some(DYNAMIC_PSM_NO_SDP), in make_l2cap_channel()
116 psm: None, in make_rfcomm_channel()
128 psm: None, in make_default_rfcomm_channel()
169 match (self.psm, self.channel) { in fmt()
170 (Some(psm), Some(cn)) => format!("psm {} | cn {}", psm, cn), in fmt()
172 (Some(psm), None) => format!("psm {}", psm), in fmt()
220 fn make_l2cap_channel(flags: i32, device: BluetoothDevice, psm: i32, is_le: bool) -> Self { in make_l2cap_channel()
230 port: psm, in make_l2cap_channel()
[all …]
/packages/modules/Bluetooth/floss/hcidoc/src/groups/
Dinformational.rs343 psm: Psm, in report_l2cap_conn_req()
349 self.host_cids.insert(cid, CidState::Pending(psm)); in report_l2cap_conn_req()
351 self.peer_cids.insert(cid, CidState::Pending(psm)); in report_l2cap_conn_req()
374 CidState::Pending(psm) => Some(*psm), in report_l2cap_conn_rsp()
380 if let Some(psm) = psm_option { in report_l2cap_conn_rsp()
381 let profile_option = ProfileType::from_psm(psm); in report_l2cap_conn_rsp()
384 self.host_cids.insert(host_cid, CidState::Connected(peer_cid, psm)); in report_l2cap_conn_rsp()
385 self.peer_cids.insert(peer_cid, CidState::Connected(host_cid, psm)); in report_l2cap_conn_rsp()
411 CidState::Connected(_peer_cid, psm) => Some(psm), in report_l2cap_disconn_rsp()
422 CidState::Connected(_host_cid, psm) => Some(psm), in report_l2cap_disconn_rsp()
[all …]
/packages/modules/Bluetooth/android/app/src/com/android/bluetooth/avrcp/
DAvrcpCoverArtService.java160 private void registerBipServer(int psm) { in registerBipServer() argument
161 debug("Add our PSM (" + psm + ") to the AVRCP Target SDP record"); in registerBipServer()
162 mNativeInterface.registerBipServer(psm); in registerBipServer()
265 int psm = getL2capPsm(); in dump() local
267 sb.append("\n\tpsm = ").append((psm == 0 ? "null" : psm)); in dump()
/packages/modules/Bluetooth/system/osi/include/
Dstack_power_telemetry.h43 void LogChannelConnected(uint16_t psm, int32_t src_id, int32_t dst_id, const RawAddress& bd_addr);
44 void LogChannelDisconnected(uint16_t psm, int32_t src_id, int32_t dst_id,
46 void LogRxBytes(uint16_t psm, int32_t src_id, int32_t dst_id, const RawAddress& bd_addr,
48 void LogTxBytes(uint16_t psm, int32_t src_id, int32_t dst_id, const RawAddress& bd_addr,
/packages/modules/Bluetooth/system/bta/jv/
Dbta_jv_act.cc406 p_cb->psm = 0; in bta_jv_free_l2c_cb()
587 static bool bta_jv_check_psm(uint16_t psm) { in bta_jv_check_psm() argument
590 if (L2C_IS_VALID_PSM(psm)) { in bta_jv_check_psm()
591 if (psm < 0x1001) { in bta_jv_check_psm()
593 switch (psm) { in bta_jv_check_psm()
664 uint16_t psm = bta_jv_cb.free_psm_list[i]; in bta_jv_get_free_psm() local
665 if (psm != 0) { in bta_jv_get_free_psm()
666 log::verbose("Reusing PSM=0x{:x}", psm); in bta_jv_get_free_psm()
668 return psm; in bta_jv_get_free_psm()
674 static void bta_jv_set_free_psm(uint16_t psm) { in bta_jv_set_free_psm() argument
[all …]
/packages/modules/Bluetooth/pandora/server/bumble_experimental/
Dasha.py55 def __init__(self, capability: int, hisyncid: List[int], device: Device, psm: int = 0) -> None:
60 self.psm: int = psm # a non-zero psm is mainly for testing purpose
121 self.emit("le_psm_out", connection, self.psm)
122 return struct.pack("<H", self.psm)
161 …self.psm = self.device.register_l2cap_channel_server(self.psm, on_coc, 8) # type: ignore[no-untyp…

12345