klange changed the topic of #osdev to: Operating System Development || Don't ask to ask---just ask! || For 3+ LoC, use a pastebin (for example https://gist.github.com/) || Stats + Old logs: http://osdev-logs.qzx.com New Logs: https://libera.irclog.whitequark.org/osdev || Visit https://wiki.osdev.org and https://forum.osdev.org || Books: https://wiki.osdev.org/Books
dormito has quit [Ping timeout: 245 seconds]
simpl_e has quit [Ping timeout: 245 seconds]
_whitelogger has joined #osdev
raggi_ has joined #osdev
arminweigl has quit [Ping timeout: 268 seconds]
fluix has quit [Ping timeout: 268 seconds]
raggi has quit [Read error: Connection reset by peer]
ebb has quit [Ping timeout: 268 seconds]
HeTo has quit [Ping timeout: 268 seconds]
Ram-Z has quit [Ping timeout: 268 seconds]
leon has quit [Ping timeout: 268 seconds]
deckard has quit [Ping timeout: 268 seconds]
asarandi has quit [Ping timeout: 268 seconds]
alfplayer76 has quit [Ping timeout: 268 seconds]
warlock has quit [Ping timeout: 268 seconds]
ZipCPU has quit [Ping timeout: 268 seconds]
DoubleJ has quit [Ping timeout: 268 seconds]
Bonstra has quit [Ping timeout: 268 seconds]
truepassion has quit [Ping timeout: 268 seconds]
puck has quit [Ping timeout: 268 seconds]
ZipCPU_ is now known as ZipCPU
arminweigl_ is now known as arminweigl
DoubleJ9 is now known as DoubleJ
leon has joined #osdev
asarandi has joined #osdev
duthils has quit [Ping timeout: 246 seconds]
ebb has joined #osdev
pandry has quit [Ping timeout: 256 seconds]
pandry has joined #osdev
deckard has joined #osdev
fluix has joined #osdev
puck has joined #osdev
pandry has quit [Ping timeout: 264 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 264 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 260 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 256 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
mkwrz has joined #osdev
pandry has joined #osdev
pandry has quit [Ping timeout: 256 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 255 seconds]
joe9 has quit [Quit: leaving]
pandry has joined #osdev
<kof123> re: remote device i thought that was plan9 :D
pandry has quit [Ping timeout: 256 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 255 seconds]
gog has quit [Ping timeout: 260 seconds]
[itchyjunk] has quit [Read error: Connection reset by peer]
q3lont has joined #osdev
q3lont has quit [Remote host closed the connection]
bnchs has joined #osdev
zetef has joined #osdev
zetef has quit [Quit: https://quassel-irc.org - Chat comfortably. Anywhere.]
zetef has joined #osdev
zetef has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
* kof123 stares at nano-x microwindows: > Add Atari Jaguar support August 25, 2020 00:39
\Test_User has quit [Quit: \Test_User]
pandry has quit [Ping timeout: 268 seconds]
\Test_User has joined #osdev
pandry has joined #osdev
project10 has quit [Quit: Ping timeout (120 seconds)]
mkwrz has quit [Ping timeout: 268 seconds]
pandry has quit [Ping timeout: 268 seconds]
mkwrz has joined #osdev
project10 has joined #osdev
exit70 has joined #osdev
pandry has joined #osdev
gabi-250_ has quit [Ping timeout: 240 seconds]
pandry has quit [Ping timeout: 268 seconds]
bnchs is now known as Cindy
kneskade has joined #osdev
wgrant has quit [Quit: WeeChat 3.5]
wgrant has joined #osdev
benlyn has quit [Ping timeout: 260 seconds]
grange_c02 has quit [Quit: Ping timeout (120 seconds)]
sebastiencs has quit [Quit: Ping timeout (120 seconds)]
grange_c02 has joined #osdev
sebastiencs has joined #osdev
rustyy has joined #osdev
exark has quit [Remote host closed the connection]
melonai9 has joined #osdev
ebb has quit [Remote host closed the connection]
merry_ has joined #osdev
Griwes has quit [Ping timeout: 260 seconds]
tomaw_ has joined #osdev
night has quit [Remote host closed the connection]
bombuzal has quit [Ping timeout: 260 seconds]
DanielNechtan has joined #osdev
ripsquid has quit [Ping timeout: 260 seconds]
melonai has quit [Ping timeout: 260 seconds]
tomaw has quit [Read error: Connection reset by peer]
melonai9 is now known as melonai
tomaw_ is now known as tomaw
wereii has quit [Read error: Connection reset by peer]
night has joined #osdev
merry has quit [Ping timeout: 276 seconds]
merry_ is now known as merry
exark has joined #osdev
pandry has joined #osdev
wereii_ has joined #osdev
Griwes has joined #osdev
gabi-250_ has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
ebb has joined #osdev
ripsquid has joined #osdev
pandry has joined #osdev
pandry has quit [Ping timeout: 276 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
goliath has joined #osdev
pandry has quit [Ping timeout: 276 seconds]
pandry has joined #osdev
exit70 has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
exit70 has joined #osdev
pandry has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
GeDaMo has joined #osdev
exit70 has quit [Quit: ZNC 1.8.2+deb2build5 - https://znc.in]
pandry has quit [Ping timeout: 268 seconds]
exit70 has joined #osdev
danilogondolfo has joined #osdev
pandry has joined #osdev
pandry has quit [Ping timeout: 245 seconds]
pandry has joined #osdev
<immibis> how would remote mmap work?
<immibis> RDMA?
zxrom has joined #osdev
gxt has quit [Remote host closed the connection]
gxt has joined #osdev
alfplayer has joined #osdev
pandry has quit [Ping timeout: 276 seconds]
Brnocrist has quit [Ping timeout: 264 seconds]
Brnocrist has joined #osdev
gog has joined #osdev
pandry has joined #osdev
gxt has quit [Remote host closed the connection]
gxt has joined #osdev
gbowne1 has quit [Quit: Leaving]
pandry has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 245 seconds]
pandry has joined #osdev
netbsduser has joined #osdev
[itchyjunk] has joined #osdev
q3lont has joined #osdev
bauen1 has quit [Ping timeout: 252 seconds]
Left_Turn has joined #osdev
FreeFull has quit [Ping timeout: 256 seconds]
HeTo_ is now known as HeTo
stylefish has joined #osdev
[Kalisto] has joined #osdev
rustyy has quit [Ping timeout: 264 seconds]
kneskade has quit [Remote host closed the connection]
project10 has quit [Quit: Ping timeout (120 seconds)]
netbsduser has quit [Ping timeout: 260 seconds]
project10 has joined #osdev
bauen1 has joined #osdev
project10 has quit [Quit: Ping timeout (120 seconds)]
rustyy has joined #osdev
netbsduser has joined #osdev
project10 has joined #osdev
<bslsk05> ​patchwork.kernel.org: [V9fs-developer,V2] 9P: introduction of a new cache=mmap model. - Patchwork
<kof123> maybe? > rdma. connect to a specified RDMA channel
pandry has quit [Ping timeout: 268 seconds]
pandry has joined #osdev
pandry has quit [Ping timeout: 255 seconds]
pandry has joined #osdev
Hammdist has quit [Quit: Client closed]
stylefish has quit [Quit: stylefish]
stylefish has joined #osdev
stylefish has quit [Quit: stylefish]
stylefish has joined #osdev
Hammdist has joined #osdev
lg has quit [Ping timeout: 268 seconds]
lg has joined #osdev
virt_ has joined #osdev
virt_ has quit [Quit: bye <3]
virt has joined #osdev
node1 has joined #osdev
edr has joined #osdev
gildasio1 has joined #osdev
gildasio has quit [Ping timeout: 240 seconds]
project10 has quit [Quit: .]
goliath has quit [Quit: SIGSEGV]
stolen has joined #osdev
alfplayer has quit [Ping timeout: 252 seconds]
lg has quit [Ping timeout: 260 seconds]
node1 has quit [Quit: Client closed]
<nur> anyone bought a Raspberry Pi 5 recently?
janemba has quit [Ping timeout: 255 seconds]
janemba has joined #osdev
lg has joined #osdev
virt has quit [Quit: My MacBook has gone to sleep. ZZZzzz…]
q3lont has quit [Quit: Leaving]
pretty_dumm_guy has joined #osdev
alfplayer has joined #osdev
dude12312414 has joined #osdev
alfplayer has quit [Ping timeout: 252 seconds]
goliath has joined #osdev
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<zid> gog: new 57 min dosh vid :o
<clever> nur: i think mine is at the post office, DHL claims a delivery was attempted on the 21st, but nobody showed up at the door, and there have been no retries
<clever> nur: ive also been digging into the firmware extensively, and may be able to answer questions without the pi itself
gog has quit [Quit: Konversation terminated!]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
xenos1984 has quit [Ping timeout: 260 seconds]
xenos1984 has joined #osdev
gog has joined #osdev
stylefish has quit [Ping timeout: 268 seconds]
stylefish has joined #osdev
heat has joined #osdev
xenos1984 has quit [Ping timeout: 256 seconds]
<nur> I figure there'd be some cyber monday deals
<nur> trying to find one for myself :)
xenos1984 has joined #osdev
<nur> clever, where did you order it from
<clever> nur: i pre-ordered it the day after the announcement
<clever> and it took a month to ship
<nur> should I get one or can I do development with just QEMU
<clever> depends on what your developing
<nur> I want to try a hand at making an OS for ARM
<clever> nur: you can start with qemu-virt-aarch64, and/or pi3/pi4
<clever> the main things to be aware of, is that the pi5 has psci for starting the secondary cores, while pi3/pi4 use spin-tables
<clever> just respect device-tree, and be prepared to write some more drivers when the 5 arrives
<nur> I don't have a Pi 3 or 4
<Ermine> how hard is it to make third party firmware for a NAS
<clever> nur: qemu can be used as well
<nur> clever, that saves me some money until I have justified the purchase :)
<clever> if you setup a hard-coded PL011 uart driver, with a hard-coded MMIO addr, you can get debug info out of both qemu and the rpi pretty early (even on the pi5)
<clever> and then use that to debug your device-tree logic
<clever> then you just walk the device-tree, and spawn drivers based on the compatible= strings
<clever> and any hw block you support will be working
<clever> then the pi5 wont be too much different, and you could run the same aarch64 kernel on the whole pi3/pi4/pi5 range, and qemu-virt
<nur> I only vaguely know how to deal with ARM hardware :-|
alfplayer has joined #osdev
<clever> nur: https://wiki.osdev.org/QEMU_AArch64_Virt_Bare_Bones and other pages on that site
<bslsk05> ​wiki.osdev.org: QEMU AArch64 Virt Bare Bones - OSDev Wiki
<heat> nur, do you want to write something for ARM or for the PI?
<heat> qemu pi emulation is kind of ass
<nur> something for ARM but real hardware, realistically thati can afford, is just pi
<heat> but you can totally get something working
<clever> heat: thats part of why i'm saying to target qemu-virt, rather then qemu-rpi, and also to implement device-tree properly
<heat> at the end of the day you don't need all that much code for the pi soc itself
<clever> with proper DT, it will work on any aarch64 system
<heat> yeah
<nur> see, I didn't know that :)
<heat> yeah so
<heat> the device tree is this (relatively complex) structure you're passed at boot time
<heat> and it describes the hardware present
<heat> so a generic kernel just reads that and dispatches drivers accordingly
<clever> yep
<heat> in theory you can hardcode things, it's not unheard of, but it's just bad practice
<nur> right
<clever> i would only hard-code an optional debug uart, so you can debug device-tree parsing
<clever> and once DT parsing works, you can use the uart DT says to use
<heat> yeah
<bslsk05> ​gist.github.com: fdt · GitHub
<clever> this is an example device-tree, from an rpi5
<clever> all numbers (not counting the ones in strings) are 32bits
<clever> line 8, says that an address is always 2 x 32bit in size, and line 9 says a size is 1 x 32bit
<clever> so 64bit address, and 32bit size
<heat> you don't need to flood nur with info :)
<nur> no no this is good stuff
<clever> line 2622-2625, the /memory node, then has an array of addr+size pairs, for all ram in the system
<heat> this is all described in the device tree spec. also most people use libfdt
<nur> parsing a DT in C with no standard library sounds fun
<clever> but libfdt only seems to do half the parsing, it lets you get this array of 32bit ints, but doesnt turn it into addr+size pairs
<clever> 0x00+0x00 0x3f800000 0x00+0x40000000 0xc0000000 0x01+0x00 0x80000000 0x01+0x80000000 0x80000000
<clever> the example memory value
<heat> nur, oh that's not the structure
<heat> you don't get it in text form
<clever> a pair of 32bit ints, make a 64bit int, plus a 32bit size
<clever> yeah, it comes in binary form
<clever> this is just decompiling it back to text, to make it readable
<nur> ahh I see
<clever> with how i formatted the example memory numbers, you can see the addr+size pairs better
<clever> it refers to a total of 8182mb of ram
<clever> thats one of the first things youll need to parse, so you know where your heap can live
<heat> how about we take it one step at a time?
<heat> get something booting first
<clever> yeah
<clever> one last link before i go
<bslsk05> ​github.com: lk-overlay/platform/bcm28xx/platform.c at master · librerpi/lk-overlay · GitHub
<clever> a crude example of searching or the first entry in /memory, and setting it up as a heap
<clever> but its not properly dealing with the #address-cells stuff
sortie has quit [Quit: Leaving]
q3lont has joined #osdev
sortie has joined #osdev
<nur> oh man this hurts my head
<heat> well yes
<heat> it doesn't matter
<heat> forget all the dt info except "its a description of hardware"
<nur> ok
<heat> see step4's header
<heat> you'll need to set this up in assembly, then make it the first section using a linker script
<heat> so when you objcopy it to a flat binary, the header is the first thing in the file
stylefish has quit [Quit: stylefish]
<nur> I see
<nur> so kind of like the magic boot header on x86
stylefish has joined #osdev
<heat> i don't think the linux x86 boot header has executable code in it :v
<zid> what does 'x86' assemble to
<nur> thanks for the tips everyone but it's almost 4am and I need to head to bed
<nur> g'nite
<zid> your clock is set wrong, it's 19:47
<immibis> wouldn't #address-cells have to be the same for memory on a given platform anyway?
<heat> no
<heat> if your hardware only supports 32-bit addresses or 32-bit sizes it makes sense to set those to a smaller size
<heat> at the very least you have space
stylefish has quit [Quit: stylefish]
virt has joined #osdev
<clever> immibis: the rpi dtb also mixes both 32bit and 64bit addresses
<clever> the VPU bus is 32bit based, so its using #address-cells=1, and ranges= to map it into the 64bit ARM bus
stolen has quit [Quit: Connection closed for inactivity]
virt_ has joined #osdev
virt has quit [Ping timeout: 268 seconds]
<immibis> that's a different bus though
<clever> yeah
<clever> its the perfect example of where address-cells can differ
<immibis> the whole device-tree hierarchy is kinda dumb. It should just be a flat list of devices, and each device should be linked to one or more busses it needs
virt_ is now known as virt
<heat> no
<heat> the natural way to represent a system is a hierarchy
gorgonical has joined #osdev
<gorgonical> thanks for the help last week zid and heat. It was in fact the sign extension that I fucked up
<heat> it was sortie, not zid
<heat> but np :)
<gorgonical> Oh
<gorgonical> Right
<gorgonical> Thanks for nothing zid, and thanks sortie
<gorgonical> It was obvious once you two pointed it out. Why we don't explicitly use s64 as the retval for all syscalls is beyond me
<heat> if you think of a conventional x86 PC system, the PCI host bridge has bridges for child buses {X, Y, Z}, and those child buses can have bridges for {W, N, N+1}, etc
<immibis> are exception levels just rings?
<immibis> heat: but that's just one hierarchy. What about I2C busses, which can be completely orthogonal to memory busses?
<gorgonical> immibis: that's how I think of exception levels, as rings yes
<immibis> especially on a single-board computer, there's no reason that all devices would be hierarchical
<gorgonical> I feel like the term ring is x86 specific, but certainly in arm/risc-v there's little difference between where an exception gets handled and the permission level otherwise
<immibis> memory isn't even a hierarchy - it's a spanning-tree, since the CPU isn't the only root.
<heat> well, you just have an i2c controller in the device tree
<heat> memory is not a hierarchy in the traditional sense, so it's not represented as one
<gorgonical> with the minor caveat of numa topologies
<heat> right
<immibis> but the default hierarchy is the memory address hierarchy
<immibis> that's how you're proposing organizing devices
<heat> what?
<heat> where did I propose that?
<immibis> heat: the write-enable pin on this flash chip is connected to a completely unrelated GPIO output of a logically unrelated device. Where's the hierarchy?
<immibis> (let's say it's connected to an ethernet PHY)
<heat> huh?
<immibis> The write-enable reuses the link light pin because there's no link light. the PHY is accessed via an MDIO bus from a switch. The switch is connected to the CPU via PCIe.
<heat> you're referring to these devices as if they're loose devices in the board with no relation to other bits whatsoever
dude12312414 has joined #osdev
<immibis> have you ever seen a single-board computer? a GPIO is a GPIO and it will be connected to wherever there's a compatible spare pin
<clever> immibis: yeah, that write-enable is where it begins to change from a tree with 1 root, into just a tangled web of interconnects, and phandle comes to the rescue
* CompanionCube wonders if the real-mode 'use a bootloader' message would count as executable code in the boot header :p
<immibis> so why pretend it's a tree to begin with?
<heat> because "tangled web of garbage" is the exception and not the rule
<clever> immibis: the tree at least lets you group things based on things they have in common, like which bus they are on, and how that bus is mapped into the "parent" bus
<immibis> that doesn't make sense
kof123 has left #osdev [#osdev]
bauen1 has quit [Ping timeout: 260 seconds]
<heat> if your boards are so simple that they are essentially just a list of fancy devices, that's great but device trees and ACPI are supposed to represent all sorts of complex or even arcane setups
<zid> heat: You mean your computer doesn't use a pci to usb to pci-e to pci to usb to sata bus!?
<Ermine> NASen are expensive
<Ermine> Depsite having only 2-core armv7 processor and ~500Mb of memory
<gorgonical> Ermine: at my previous research lab we bought a freeNAS machine and it was a pretty good deal I remember
<zid> 500 megabits is not a lot of memory
gbowne1 has joined #osdev
<zid> most people I see, just repurpose their previous desktop, with an underclock + undervolt :p
<zid> as long as you don't need the bandwidth and bought intel
<nortti> can you not underclock / undervolt amd?
<Ermine> gorgonical: is it just regular machine or something in form factor of desktop NAS?
<zid> nortti: ofc you can?
dude12312414 has quit [Quit: THE RAM IS TOO DAMN HIGH]
<zid> no idea why you asked that
<nortti> 22:34 < zid> most people I see, just repurpose their previous desktop, with an underclock + undervolt :p
GeDaMo has quit [Quit: That's it, you people have stood in my way long enough! I'm going to clown college!]
<nortti> 22:34 < zid> as long as you don't need the bandwidth and bought intel
<zid> exactly, so I'm not sure how you got amd + can't undervolt
<gorgonical> Ermine: iirc it was a machine from freeNAS, the people that make the freebsd distribution. So it was a proper NAS format. Not a rack unit though
<zid> "I hear people do x, unless <intel + high bandwidth>"
<zid> intel only ships enough pci-e lanes for a single slot of expansion card these days
<gorgonical> yeah we probably got the mini series
raggi_ is now known as raggi
<nortti> I read it as "I hear people do X, as long as low bandwidth and intel"
<zid> work on that
<Ermine> is it called truenas now?
<gorgonical> yeadh
<geist> zid: with amd it already doesn't use a lot of power. ZING
alfplayer has quit [Quit: Connection closed]
<Ermine> OH OpenZFS
<nortti> zid: is it more natural for an L1 english speaker to group "as long as you don't [[need the bandwidth] and [bought intel]]" rather than "as long as [you don't need the bandwidth] and [bought intel]"?
<Ermine> "Starting at $1048"
<gorgonical> yeah they aren't extremely cheap either. But much better than $5,000 for a "real" NAS
Hammdist has quit [Quit: Client closed]
<geist> i use synology nases in general and they're kinda in that range too
<gorgonical> Can always roll your own with a NUC-form factor machine and an external HDD enclosure
<zid> nortti: You missed the implied period with it being split over two lines with an emoticon
<Ermine> Synology are less powerful, but they start at $300-350
<zid> Most people reuse their desktop. Unless they bought intel and need bw.
<nortti> I'm used to people adding a qualifier to their message on a separate line, so I do not necessarily consider a message break a period if the two messages fit together as a single sentence
<zid> see the emoticon
<geist> yah i'd consider a :P to be a sentence break
<geist> like you stopped saying it, then stuck out your tongue
<geist> not a thing you'd do in the middle of a sentence
<nortti> I'd see no reason why that couldn't happen in the middle of a sentence
<CompanionCube> Ermine: iirc openzfs is just the filesystem, truenas is the software/distro
<zid> well, work on that
<Ermine> Yes
<gorgonical> CompanionCube: yes that's right
<nortti> especially if we're talking of face to face conversations, in which it's common for a "sentence" (not really a concept in speech tbh) to be amended
<zid> Plus, if I meant what you said, I'd have phrased it entirely differently
<geist> usually with some sort of conjunction like and or but or something
<nortti> zid: I mean, sure, if I knew your speech patterns well that would be additional data, but I don't (and I talk a lot with L2 speakers who do not necessarily use the same patterns an L1 speaker does, so I can't rely on that to override the default if no other data seems to suggest the default is wrong)
<Ermine> I guess every other truenas series is rack mountable
<geist> but re: the original sentence, it is ambigous what the 'dont' applies to
<immibis> heat: arcane setups are exactly when trees DON'T work.
<gorgonical> I think they make the mini as rack mountable, but it's like $500 more
<geist> we need something like logjam to fix that
<zid> but not ambiguous in the way you'd end up with "amd can't undevolt"
<immibis> pci to usb to pci-e to usb to sata is a very simple tree structure.
<zid> which is what I didn't understand
<geist> lojban
<immibis> you're now banned from loj
<geist> hmmm, can amd undervolt?
<zid> ofc
<geist> my joke was you dont need to undervolt if it already is power efficient. which is not based on any sort of real logic
<geist> just a dig because.
<zid> mine actually runs kinda hot
<geist> or if you have a bulldozer
<zid> there's a B2 revision with runs at lower voltages
<zid> with? which
<netbsduser> immibis: don't you organise your kernel's devices into a tree too?
<nortti> < zid> https://imgs.xkcd.com/comics/lojban.png ← tbh lojban doesn't even succeed in that. it focuses purely on specific forms of syntactic ambiguity and ignores all things like "word can mean several things" and "pragmatics exist" and the whole field of evidentiality
<geist> oh question: if you end a sentence with ... would you consider that rude and/or passive aggressive?
<Ermine> gorgonical: well, looks cool
<zid> wistful!
<zid> depends on context ofc
<netbsduser> it's a practice which has a considerable body of tradition behind it
<zid> like...
<sortie> geist: Good question ...
<zid> it could just be a legitimate pause?
<sortie> SURPRISE!
<geist> yah someone told me genz can read that as passive aggressive
<zid> the space before the dots makes it look like a "bruh", sortie
<nortti> in a conversation I'd consider it a sort of trailing off, not necessarily passive aggressive or rude, but showing a bit of disengagament if that is how you end the sentence
<zid> which is 100% passive aggressive
<heat> netbsduser, it also ends up being the most useful model for power management et al
<netbsduser> gen z thinks a lot of things
<sortie> geist: genz just doesn't varargs
<heat> hello
<heat> genz here
<heat> what quesiton??
<sortie> I don't believe heat is genz
<immibis> netbsduser: I don't have a kernel, but I have worked on devices that are decidedly not trees.
<nortti> though I do know that older people use … as a generic clause separator / ender
<zid> heat is a zoomer
<geist> i think the idea is us genxers use ... all the time because we were ignored as children
<netbsduser> heat: the top reason for it is of course for a layered device model
<immibis> heat: so you turn off the I2C controller controlling a device because the I2C controller was in a different branch of the tree?
<immibis> devices are a DAG - deal with it, or suffer.
<sortie> I mostly use ... as a continuation
<geist> though i tend to do ,etc or something at the end, to mean 'and you can fill in the details' which i guess is kinda passive aggressive
<geist> not really, but more like 'i dont have the time to type in the rest of this'
<immibis> devices are a DAG ...
<netbsduser> though in fairness you can also perceive that as a stack discipline
<sortie> Although "foo..." to end a sentence? Yeah more like trailing off ambiguiety and uncertainty
<sortie> Guess it could be sarcasm too...
<nortti> geist: in gretchen mcculloch's book "because internet" she looks into this exact thing. if you're interested in language and internet or textual communication in general, I'd highly recommend giving it a read
<heat> yeah ... can be passive aggressive
<zid> heat, ...
<geist> i think of ... at the end for something like imagining a scene in a movie where someione sort of trails off and looks up. ie, exactly the wistful thinking
<heat> ...
<zid> by itself it is 100% fully aggressive
<zid> it's taking your shirt off
<geist> oh … by itself is 100% yeah
<sortie> I hear genz uses () instead of (...) like K&R intended
<geist> maybe that's what i heard. less of at the end of a sentence and move of a full on …
<netbsduser> i'll leave that to your honourable selves...
<heat> your ...s are weird geist...
<zid> geist: You using the unicode is giving me paroxysms
<geist> rawr!
<geist> on on my mac, so alt-; its so easy
<heat> 😾
<Ermine> Where genz is supposed to use ()?
<nortti> < geist> i think of ... at the end for something like imagining a scene in a movie where someione sort of trails off and looks up. ie, exactly the wistful thinking ← my interpretation is more like a scene where someone trails off and then tries to leave the conversation
<geist> nortti: hmmm, yeah
<geist> another interpretation is wher eyou say something and then you trail off, with the idea that you led the other person to the answer and they complete the sentence for you
<Ermine> Ah, varargs
<geist> another silly movie trope
<zid> wistful vs can't be fucked is context, ... by itself is shirt off, unicode is "I hate you with a burning passion"
<zid> easy
<Ermine> GenZ position: varargs bad
<heat> when someone uses unicode and the funny caracters pop in my computer 🤬🤬🤬🤬🤬🤬🤬🤬🤬🤬🤬🤬🤬🤬
<zid> genz position: Why would I not just write this in Go?
<geist> ˙å†é ¥øü
<sortie> I had this manager that did this amazing trick where you know, you can just keep talking to him, but he's always kinda walking away, but you keep talking and he stays for as long as you need, and once there's no need to talk anymore, he's gone. Kinda cool time management
<immibis> which generation is node.js?
<nortti> funnily enough there are ABIs where () and (...) would pass values differently
<Ermine> They undermine typing system in C
<immibis> devices are a DAG⋰
<Ermine> And useful only for a couple of functions
<zid> () and (...) are different on amd64
<heat> nortti, oh 100%, i'm fairly sure sysv is one of those
<heat> for float at least
<immibis> devices are a DAG ⋮
<zid> one needs an xor eax, eax
<zid> one doesn't
<heat> that said
<sortie> nortti, yeah I was kinda thinking about that, since a fixed number of arguments with particular types usually have more efficient special case calling conventions than the boundless stdarg
<heat> a() { extern printf; printf("fuck");}
<immibis> (⋯) means pass arguments in registers, and (⋮) means stack them on the stack
<sortie> :D
<Ermine> main where
<nortti> void foo(unsigned register a) // pass arguments in registers
<heat> /* pass arguments in registers*/
<heat> FTFY
<zid> I just do
<sortie> A signed register uses TLS
<zid> static int a asm("eax"); static int b asm("ebx"); etc
<zid> then just do eax = arg1; ebx = arg2; ... f();
<immibis> ABI is stupid. The compiler should choose a way to input registers for a function and save it in some kind of interface file. It's stupid that we rely on different compilers computing the same outputs for a given input, instead of having one read in what the other generated.
<heat> a() { unsigned b; __asm__("mov %rdi, %0" : "=r"(b));}
<heat> vote heat for prime minister
<heat> prime minister of C
<immibis> devices are a DAG!
<heat> mov %%rdi, %0
<heat> small mistake
<zid> demoted to VP
<immibis> leader of the opposition
<geist> protobyf
<heat> average google employee
<heat> dotdotdot
<geist> the koolaid is nice and crisp
* sortie laughs in shareholder value
<geist> and lots of comfortable chairs to lay in after drinking
<bslsk05> ​twitter: <pkhuong> I think using TPUs to explore the space of 3 inputs / 8 instructions from (mov, cmp, cmov) says more about internal budget allocation at the protobuf moving company than anything else.
<heat> hahaha
danilogondolfo has quit [Quit: Leaving]
<immibis> google did what?
<immibis> heat: devices are a DAG
<nortti> pretty sure services can have cycles
<nortti> *devices
<Ermine> TPUs = tensor processing units ?
<heat> i don't agree
<heat> Ermine, yes
<immibis> heat: would you turn off the I2C controller because it's on a different branch from the devices on the I2C bus?
<heat> the devices on the I2C bus are not part of the device tree
<immibis> really?
<heat> yes?
<immibis> the devices are not part of the device tree?
<heat> those devices aren't
<immibis> what is the point of the device tree if it doesn't tell you the devices?
<heat> I2C is barely a bus, it doesn't do power management at all
<gorgonical> or discovery
<immibis> nobody said it did.
<immibis> of course it's a bus
<immibis> if you need a power domain tree then make a power domain tree
agent314 has joined #osdev
q3lont has quit [Ping timeout: 276 seconds]
gxt has quit [Remote host closed the connection]
virt has quit [Remote host closed the connection]
gxt has joined #osdev
virt has joined #osdev
bauen1 has joined #osdev
<gorgonical> I am doing unwise things
<gorgonical> I need to query a Linux socket for polling events without a corresponding process context becuase the process context isn't in Linux
<gorgonical> So I want all the other parts of poll to happen immediately, without blocking. I think I can do this if I pass a NULL file and NULL polltable
virt has quit [Ping timeout: 256 seconds]
netbsduser has quit [Ping timeout: 260 seconds]
<heat> AFAIK you can't pass a null file but a null poll table may be possible
<gorgonical> I know there's a macro that explicitly checks if the polltable is null because it may have been killed already
<gorgonical> the sctp implementation (which is reasonable clear) doesn't actually care if there's filep, it just directly inspects the socket state. I don't know about tcp/udp though
<heat> what macro?
<bslsk05> ​elixir.bootlin.com: poll.h - include/linux/poll.h - Linux source code (v6.6.2) - Bootlin
<gorgonical> macro is not the right word, sorry
<heat> right
<heat> i have no idea why they check for NULL
<heat> no vfs_poll caller ever seems to pass NULL
<gorgonical> I didn't see that either
<gorgonical> I can only wonder if its a reentrance thing where someone may free the polltable
<gorgonical> Indicating that someone got some events they wanted and we don't actually need to do this pollwait
<zid> It is 10pm my dudes, but Iam slightly blind, grr, good timing
virt has joined #osdev
<bslsk05> ​github.com: poll: add poll_requested_events() and poll_does_not_wait() functions · torvalds/linux@626cf23 · GitHub
<heat> tldr it's old code, it used to set it to NULL
<gorgonical> oh
<gorgonical> I can't think of any other situations in which you might want to query pollable events without actually doing the pollwait, since polling is implicitly a userspace action
virt has quit [Ping timeout: 245 seconds]
<gorgonical> explicitly, even
<heat> "The poll_table_struct can still be NULL since some kernel code calls it internally"
<heat> but then he invokes some staging driver as an example, so i don't know if that's still correct
<bslsk05> ​github.com: staging: pohmelfs: remove drivers/staging/pohmelfs · torvalds/linux@6743531 · GitHub
<gorgonical> Seems like no
<zid> heat are you 155.167.63.148.rev.vodafone.pt
<zid> or is someone else hacking me
<heat> i am not
alfplayer has joined #osdev
<gorgonical> tomorrow zid's nick will be shilling monero, watch out
[_] has joined #osdev
<zid> /nick Shilling Monero
<zid> That isn't what you meant, but it sounds cool
virt has joined #osdev
remexre has quit [Ping timeout: 256 seconds]
<gorgonical> that's not a bad name for a dnd character honestly
<zid> ikr?
[itchyjunk] has quit [Ping timeout: 268 seconds]
remexre has joined #osdev
Wolf480pl has joined #osdev
Wolf480pl has left #osdev [Leaving]
virt has quit [Ping timeout: 268 seconds]
kspalaiologos has quit [Quit: Leaving]
dude12312414 has joined #osdev
dude12312414 has quit [Remote host closed the connection]
alfplayer has quit [Ping timeout: 268 seconds]
<geist> yeah that is pretty good
goliath has quit [Quit: SIGSEGV]
<Bitweasil> Nay! The name's Shilling MonARRRRRRo, pirate of the seventeen seas!
<Bitweasil> :D
<heat> god i hate spurious github actions failures
<heat> they just happen, randomly
<heat> usually only happens with nightly though
Left_Turn has quit [Read error: Connection reset by peer]
pretty_dumm_guy has quit [Quit: WeeChat 3.5]
andreas303 has quit [Ping timeout: 256 seconds]