OS/vxWorks

๋ง๋ฒ„ํผ Examples(ring_buffer.c)

Dexter_- 2017. 7. 10. 11:43
728x90
๋ฐ˜์‘ํ˜•

 

ring_buffer.c
๋‹ค์šด๋กœ๋“œ

 

 

 

 

๐Ÿ“Œ Ring buffer 

 

 

  • rngCreate() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ง๋ฒ„ํผ๋ฅผ ๋งŒ๋“ ๋‹ค.
  • ํ•จ์ˆ˜์ธ์ž๋กœ ๋ง๋ฒ„ํผ์˜ ์ „์ฒด ํฌ๊ธฐ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉฐ ์œ„ ์†Œ์Šค์—์„œ๋Š” ๊ตฌ์กฐ์ฒด ํฌ๊ธฐ 20byte * 10 = 200byteํฌ๊ธฐ์˜ ๋ง๋ฒ„ํผ๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
  • rngBufPut() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ง๋ฒ„ํผ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค.
  • rngFreeBytes() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ง๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‚จ์€ ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • rngNBytes() ํ•จ์ˆ˜๋ฅผํ†ตํ•ด ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ ์žˆ๋Š” ๊ณต๊ฐ„์˜ ํฌ๊ธฐ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • rngIsFull() ํ•จ์ˆ˜๋ฅผํ†ตํ•ด ๋ง๋ฒ„ํผ๊ฐ€ ๊ฝ‰์ฐป๋Š”์ง€์˜ ์—ฌ๋ถ€๋ฅผ BOOL ํƒ€์ž…์œผ๋กœ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
  • rngIsEmpty() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ฒ„ํผ๊ฐ€ ๋น„์–ด์žˆ๋Š”์ง€์˜ ์—ฌ๋ถ€๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๋‹ค.
  • rngBufGet() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ง๋ฒ„ํผ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์–ด์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  • rngDelete() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๋ง๋ฒ„ํผ๋ฅผ ์‚ญ์ œํ•œ๋‹ค.

 

 

๐Ÿ’ก ์‹คํ–‰ ๊ฒฐ๊ณผ 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•