一、函数原型:
这函数主要就是向binder_io结构体里面写入一个string16的字符串。
/**
* 向 binder_io 结构体中写入一个 UTF-16 格式的字符串
* binder_io 结构体的指针 bio
* const char* 类型的字符串 _str
* */
void bio_put_string16_x(struct binder_io *bio, const char *_str)
{
unsigned char *str = (unsigned char*) _str;
size_t len;
uint16_t *ptr;
// 如果字符串为null,则向 bio 中写入 0xffffffff 表示空字符串,然后返回
if (!str) {
bio_put_uint32(bio, 0xffffffff);
return;
}
// 计算输入字符串的长度
len = strlen(_str);
// 检查字符串长度是否超出了定义的最大长度
if (len >= (MAX_BIO_SIZE /