What is the difference between Rf_dpois in Rmath.h and the dpois that I use directly in R? If I see Rmath.h in /usr/share/R/include, the signature of the function dpois or Rf_dpois is  
double dpois(double, double, int); 

However, if I do ?dpois in R, I see:
dpois(x, lambda, log = FALSE)

Are these both the same thing? If yes, can someone please clarify?
Also I tried to find the code for dpois at R-svn. 
Can someone please tell how to find the code for functions like these?
 A: You could always test things, courtesy of inline and Rcpp. 
Here we pass three lines of code to C++ to receive the two parameters, and then pass those to Rf_dpois (while setting the log argument to false):
R> library(Rcpp)
R> library(inline)
R> src <- "double x = Rcpp::as<double>(xs);
+         double y = Rcpp::as<double>(ys);
+         return(Rcpp::wrap(Rf_dpois(x, y, false)));"
R> fun <- cxxfunction(signature(xs="numeric",ys="numeric"), src, plugin = "Rcpp")
R> fun(2, 0.5)
[1] 0.0758163
R> dpois(2, 0.5)
[1] 0.0758163
R> fun(1.0, 0.5)
[1] 0.303265
R> dpois(1.0, 0.5)
[1] 0.303265
R> 

The code to dpois() is in R-2.12.1/src/nmath/dpois.c. And yes, it can be freely copied.
A: Yes they are the same.  I am guessing that  x is double because of type conversions. If integer is multiplied by double in C, the double is converted to integer. There are checks in the code that x is really integer, though it is of type double. 
The code for this function is in src/nmath/dpois.c. I found it by doing grep -R "dpois" in directory with extracted R source code. This will work from the terminal in Linux and in Mac OS X. In Windows you will need to install grep. I suggest installing Rtools. 
Note. The code is very short, but I intentionally do not post it here, since I do not know for sure if I will not break some licence by doing that.
A: In reference to the question on how to find the source for headers of other functions, see this article in R News by Uwe Ligges:
Uwe Ligges. R Help Desk: Accessing the sources. R News, 6(4):43-45, October 2006.
