GENASSYM.CF(5)

πŸ“¦
version 11.0 Β· 2 versions
, in nixpkgs unstable

πŸ’– NAME πŸ’–

genassym.cf β€” assym.h definition file. and yes bestie, this is the genassym.cf(5) page from the File Formats Manual β€” we are literally in the right place. 🫢

✨ DESCRIPTION ✨

okay so picture this: genassym.cf is the file that genassym(1) uses to make constant C expressions known to assembler source files. lowkey iconic. 🌸

Here's the vibe check on how lines get treated:

  • Lines starting with # are discarded by genassym(1). bye felicia. πŸ’…
  • Lines starting with include, ifdef, if, else or endif are preceded with # and passed otherwise unmodified to the C compiler.
  • Lines starting with quote get passed on with the quote command removed.

And here are the commands doing their main character thing:

  • The first word after a define command is taken as a CPP identifier, and the rest of the line has to be a constant C expression. The output of genassym(1) will assign the numerical value of this expression to the CPP identifier. ✨
  • export X is a shorthand for define X X.
  • struct X remembers X for the member command and does a define X_SIZEOF sizeof(X).
  • member X does a define X offsetof(<last struct>, X).
  • config <ctype> <gcc constraint> <asm print modifier> can be used to customize the output of genassym(1).

When producing C output, values are casted to <ctype> (default: long) before they get handed to printf. <gcc constraint> (default: n) is the constraint used in the __asm__ statements. <asm print modifier> (default: empty) can be used to force gcc to output operands in different ways then normal. The "a" modifier e.g. stops gcc from emitting immediate prefixes in front of constants for the i386 and m68k port. πŸ”₯

πŸŽ€ FILES πŸŽ€

  • /usr/src/sys/arch/${MACHINE}/${MACHINE}/genassym.cf

πŸ¦‹ SEE ALSO πŸ¦‹

🌈 HISTORY 🌈

The genassym.cf file appeared in NetBSD 1.3. πŸ‘‘


okay bye bestie β€” this page is from Debian, dated August 18, 2005, and it's literally the GENASSYM.CF(5) manual. periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from