blob: eb3a1dec8365bcdcf60c7b74bc4438f63750bc8e [file] [log] [blame]
/*
* Copyright (c) 2025 Netfeasa Ltd.
*
* SPDX-License-Identifier: Apache-2.0
*/
/*
* hl78xx_chat.h
*
* Wrapper accessors for MODEM_CHAT_* objects that live in a dedicated
* translation unit (hl78xx_chat.c). Other driver TUs should only call
* these functions instead of taking addresses or using sizeof/ARRAY_SIZE
* on the macro-generated objects.
*/
#ifndef ZEPHYR_DRIVERS_MODEM_HL78XX_HL78XX_CHAT_H_
#define ZEPHYR_DRIVERS_MODEM_HL78XX_HL78XX_CHAT_H_
#include <stddef.h>
#include <zephyr/modem/chat.h>
/* Forward declare driver data type to keep this header lightweight and avoid
* circular includes. The implementation file (hl78xx_chat.c) includes
* hl78xx.h for full driver visibility.
*/
struct hl78xx_data;
/* Chat callback bridge used by driver TUs to receive script results. */
void hl78xx_chat_callback_handler(struct modem_chat *chat, enum modem_chat_script_result result,
void *user_data);
/* Wrapper helpers so other translation units don't need compile-time
* visibility of the MODEM_CHAT_* macro-generated symbols.
*/
const struct modem_chat_match *hl78xx_get_ok_match(void);
const struct modem_chat_match *hl78xx_get_abort_matches(void);
const struct modem_chat_match *hl78xx_get_unsol_matches(void);
size_t hl78xx_get_unsol_matches_size(void);
size_t hl78xx_get_abort_matches_size(void);
const struct modem_chat_match *hl78xx_get_allow_match(void);
size_t hl78xx_get_allow_match_size(void);
/* Run predefined scripts from other units */
int hl78xx_run_init_script(struct hl78xx_data *data);
int hl78xx_run_periodic_script(struct hl78xx_data *data);
int hl78xx_run_post_restart_script(struct hl78xx_data *data);
int hl78xx_run_init_fail_script_async(struct hl78xx_data *data);
int hl78xx_run_enable_ksup_urc_script_async(struct hl78xx_data *data);
int hl78xx_run_pwroff_script_async(struct hl78xx_data *data);
int hl78xx_run_post_restart_script_async(struct hl78xx_data *data);
/* Async runners for init/periodic scripts */
int hl78xx_run_init_script_async(struct hl78xx_data *data);
int hl78xx_run_periodic_script_async(struct hl78xx_data *data);
/* Getter for ksrat match (moved into chat TU) */
const struct modem_chat_match *hl78xx_get_ksrat_match(void);
/* Socket-related chat matches used by the sockets TU */
const struct modem_chat_match *hl78xx_get_sockets_ok_match(void);
const struct modem_chat_match *hl78xx_get_connect_matches(void);
size_t hl78xx_get_connect_matches_size(void);
const struct modem_chat_match *hl78xx_get_sockets_allow_matches(void);
size_t hl78xx_get_sockets_allow_matches_size(void);
const struct modem_chat_match *hl78xx_get_kudpind_match(void);
const struct modem_chat_match *hl78xx_get_ktcpind_match(void);
const struct modem_chat_match *hl78xx_get_ktcpcfg_match(void);
const struct modem_chat_match *hl78xx_get_cgdcontrdp_match(void);
const struct modem_chat_match *hl78xx_get_ktcp_state_match(void);
#endif /* ZEPHYR_DRIVERS_MODEM_HL78XX_HL78XX_CHAT_H_ */