I've decided to make a sticky thread that'll explain what certain header files do in the pspsdk. I've learned a GREAT deal from just reading through these files. Hopefully, I can provide a great deal of documentation for each of these files in the end, so that it will help people understand how the pspsdk works much better, and makes them better quicker.
My goal here, is to list every file in the pspdev/psp/sdk/include folder with an accurate and complete description of the file, and maybe explain a little bit on some functions that are particularly interesting. That way, it might help people research the pspsdk. My personal gain from this is to hopefully understand the pspsdk much more, so I can tackle more in-depth concepts (or at least in my opinion), and it could help those who have had those same questions.
I don't know what every single file does, but I'll post a little information on the ones I do know. If anyone has information on a file that I didn't list, or have more information on a header file I have already written about, please tell me! The file descriptions that I feel that are incomplete will be tagged as '[PENDING]', and the ones that are done will be tagged '[DONE]'.
These files can be found in:
"C:\cygwin/usr/local/pspdev/psp/sdk/include" for cygwin users on Windows, and
"FileSystem:\usr/local/pspdev/psp/sdk/include" for Linux users (or Ubuntu users at least, I think). FileSystem is your C drive by the way.
pspctrl.h [PENDING]This header file contains the functionality for developers to harness the PSP's input. The enumeration, SceCtrlButtons contains all the different values for the PSP's input buttons. It also contains coordinates, which I think are Cartesian coordinates, of the analog stick. You may want to convert them into polar coordinates so that your character's movement doesn't increase when the analog is pushed diagonally. The enumeration, SceCtrlMode, contains two states: PSP_CTRL_MODE_DIGITAL, PSP_CTRL_MODE_ANALOG. I know that setting int sceCtrlSetSamplingCycle(int cycle) to PSP_CRTL_MODE_ANALOG enables the use of the analog stick, but not too sure about how sceCtrlSetSamplingCycle, or the other functions similar to that works, but I know it has something to do with the the detail of the analog mode? You can use
sceCtrlPeekBufferPositive(SceCtrlData *pad_data, int count)
to check whether a button has been pushed and
sceCtrlPeekBufferNegative(SceCtrlData *pad_data, int count)
to see if a button hasn't been pressed (or released?) by passing the address of an SceCtrlData structure. There's a little in there about latching buttons, is that a simple way to lock a button? Just wondering...
pspgu.h [PENDING]This is a huge, and monstrous file that contains the functions for using the PSP's GU. If you really want to get good to do anything graphically with the PSP, this is a great starting point, and it's simple to do. There's a good deal of information for each function, macro, and structure listed in it, and if you have any problems, try googling the topic (because the information you're probably looking for like 'how alpha blending works' can be found via google, or gamedev.net). If that fails, the forum is a great place to ask!

I'll go into more detail later.
pspgum.h [PENDING]This is the header file that contains the functions for using matrices, and manipulating them. It also contains the means for controlling which matrix mode you're in: GU_PROJECTION for projection, GU_VIEW for view, and GU_MODEL for model. There's also another matrix mode called GU_TEXTURE. Not quite sure what it does, but I believe it has something to do with moving/shifting texture around on a surface maybe? Again, just a wild guess. There's also another set of drawing functions that are the same to the sceGuDrawArray() functions found in pspgu.h. This one is called: sceGumDrawArray(), and there are 3 more functions similar to it. From the information I've come across, they do the same things. I'm guessing they perform these functions on different pipelines based on sceGuDrawArray(), or sceGumDrawArray(). I'm basing this on nothing though, except for a theory. It's probably wrong until clarified. I use sceGumDrawArray() when drawing all my scenes.
pspge.h [PENDING]This if a file I need to look into much more carefully. It is a bit similar to pspgu.h, but it contains functions, enumerations, and structures for vertex skinning and bone matrices. These are for doing mesh animations. The functions in here contribute both to pspgu.h and pspgum.h in a way. I believe that these three files work together closely as powerful trio.
psprtc.h [PENDING]Not much to mention here for now seeing that I'm running out of time, but I would like to inform that this is the file that contains time data for doing things on the PSP that involve using timers and such. This header file contains the means of allowing the programmer to set a tick count in microseconds (one millionth of a second) of timer precision. There's also a useful structure called pspTime that contains information a set of members for the time, day, month, etc. Interesting stuff, but rest assured, this is an extremely useful header to use if you're doing something like using a countdown timer, or doing benchmarks to see how long it takes to do calculations or other operations on the PSP.
This concludes my session so far. I'm out of time, and I hope to get more time later on to continue on with this. If anyone finds any data/information that's incomplete or irrelevant, please tell me, and I'll change it. Again, if anyone would like to share their own documentation for how a header file works, please fill me in.