ENUM CIP_FLAGS(9)
β¨ enum cip_flags β¨
okay so bestie, this is a page out of the Kernel API Manual and it's literally just a big old enum β but don't let that fool you, it's the main character of the streaming protocol world π
. It describes details of the streaming protocol, no cap. Let's get into it.
πΈ SYNOPSIS πΈ
enum cip_flags {
CIP_NONBLOCKING ,
CIP_BLOCKING ,
CIP_EMPTY_WITH_TAG0 ,
CIP_DBC_IS_END_EVENT ,
CIP_WRONG_DBS ,
CIP_SKIP_DBC_ZERO_CHECK ,
CIP_EMPTY_HAS_WRONG_DBC ,
CIP_JUMBO_PAYLOAD ,
CIP_HEADER_WITHOUT_EOH ,
CIP_NO_HEADER ,
CIP_UNALIGHED_DBC ,
CIP_UNAWARE_SYT ,
CIP_DBC_IS_PAYLOAD_QUADLETS
};
π Constants π
CIP_NONBLOCKINGβ non-blocking mode, babes. every single packet carriessample_rate/8000samples, and it rounds up or down to adjust for clock skew plus any left-over fractional samples. use this one if your device supports it π«ΆCIP_BLOCKINGβ blocking mode. each packet has either zero or SYT_INTERVAL samples, and those two types alternate so the overall sample rate comes out right. alternating, slay π¦CIP_EMPTY_WITH_TAG0β in-stream only, bestie. empty in-packets haveTAG0.CIP_DBC_IS_END_EVENTβ the value ofdbcin a packet corresponds to the end of event in the packet. straight out of IEC 61883 π«CIP_WRONG_DBSβ in-stream only. the value ofdbsis wrong in in-packets, so the value ofdata_block_quadletsgets used instead of the reported value. we improvise π₯CIP_SKIP_DBC_ZERO_CHECKβ in-stream only. packets with zero indbcget skipped when detecting discontinuity. not me ignoring the zeroes πCIP_EMPTY_HAS_WRONG_DBCβ in-stream only. the value ofdbcin empty packets is wrong, but the others are correct. it's giving "one bad apple" πCIP_JUMBO_PAYLOADβ in-stream only. the number of data blocks in a packet is larger than IEC 61883-6 defines. the current implementation allows 5 times as large as IEC 61883-6 defines. jumbo literally. πCIP_HEADER_WITHOUT_EOHβ in-stream only. the CIP Header doesn't include a valid EOH.CIP_NO_HEADERβ a lack of headers in packets. that's it, that's the vibe πCIP_UNALIGHED_DBCβ in-stream only. the value ofdbcis not alighed to the value of currentSYT_INTERVAL; e.g. the initial value is not zero. (yes the original spelling is alighed, we respect the source π)CIP_UNAWARE_SYTβ for an outgoing packet, the value in the SYT field of CIP is0xffff. for an incoming packet, the value in the SYT field of CIP is not handled. unaware, iconically πCIP_DBC_IS_PAYLOAD_QUADLETSβ available for incoming packets, and only effective with theCIP_DBC_IS_END_EVENTflag. the value of thedbcfield is the number of accumulated quadlets in the CIP payload, instead of the number of accumulated data blocks. plot twist β
π SEE ALSO π
- Kernel file
./sound/firewire/amdtp-stream.h enum cip_sfc(9)amdtp_stream_running(9)amdtp_streaming_error(9)amdtp_stream_pcm_running(9)amdtp_stream_pcm_trigger(9)amdtp_stream_next_packet_desc(9)amdtp_domain_wait_ready(9)
ngl bestie, if you're touching these flags you're deep in FireWire audio land β read carefully, this is real kernel business ππ
mwah, that's the whole page! it came from ./sound/firewire, dated October 2026, and it's filed under enum cip_flags(9) π§ββοΈβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms