Document of c-modernization-kit (porter) 1.0.0

Loading...
Searching...
No Matches
Functions
seqnum.c File Reference

通番管理モジュール。 More...

`#include <stddef.h>`
`#include <stdint.h>`
`#include "seqnum.h"`
Include dependency graph for seqnum.c:

Go to the source code of this file.

## Functions
void | seqnum_init (uint32_t *seq, uint32_t initial)
| 通番を初期化します。
uint32_t | seqnum_next (uint32_t *seq)
| 通番を 1 進めて次の値を返します。
int | seqnum_is_newer (uint32_t a, uint32_t b)
| 通番 a が通番 b より新しいかどうかを判定します。
int | seqnum_in_window (uint32_t seq, uint32_t base, uint16_t window_size)
| 通番 seq がウィンドウ [base, base + window_size) に含まれるか判定します。

## Detailed Description

通番管理モジュール。

Author
  c-modernization-kit sample team

Date
  2026/03/04

Version
  1.0.0

Copyright
  Copyright (C) CompanyName, Ltd. 2026. All rights reserved.

Definition in file seqnum.c.

## Function Documentation

## ◆ seqnum_init()

void seqnum_init | ( | uint32_t * | seq,
|  | uint32_t | initial )

通番を初期化します。

Parameters

  [out] | seq | 初期化する通番へのポインタ。
  [in] | initial | 初期値。

Definition at line 26 of file seqnum.c.

## ◆ seqnum_next()

uint32_t seqnum_next | ( | uint32_t * | seq | ) |

通番を 1 進めて次の値を返します。

Parameters

  [in,out] | seq | 通番へのポインタ。

Returns
  インクリメント後の通番。seq が NULL の場合は 0 を返します。

uint32_t の最大値に達した場合は 0 に折り返します。

Definition at line 45 of file seqnum.c.

## ◆ seqnum_is_newer()

int seqnum_is_newer | ( | uint32_t | a,
|  | uint32_t | b )

通番 a が通番 b より新しいかどうかを判定します。

Parameters

  [in] | a | 比較対象の通番 A。
  [in] | b | 比較対象の通番 B。

Returns
  a が b より新しい場合は 1、そうでない場合は 0 を返します。

uint32_t 折り返しを考慮した比較を行います。
差が UINT32_MAX / 2 以下の場合に「a が新しい」と判定します。

Definition at line 66 of file seqnum.c.

## ◆ seqnum_in_window()

int seqnum_in_window | ( | uint32_t | seq,
|  | uint32_t | base,
|  | uint16_t | window_size )

通番 seq がウィンドウ [base, base + window_size) に含まれるか判定します。

Parameters

  [in] | seq | 判定する通番。
  [in] | base | ウィンドウ先頭の通番。
  [in] | window_size | ウィンドウサイズ (パケット数)。

Returns
  ウィンドウ内の場合は 1、ウィンドウ外の場合は 0 を返します。

Definition at line 80 of file seqnum.c.

Referenced by recv_thread_func(), window_recv_push(), and window_send_get().

Here is the caller graph for this function: